add directory upload in file manager
This commit is contained in:
parent
ee0fc45e5c
commit
87f2a51e27
|
@ -275,7 +275,20 @@ class FileManagerAdminController extends AdminController
|
||||||
$form->handleRequest($request);
|
$form->handleRequest($request);
|
||||||
|
|
||||||
if ($form->isValid()) {
|
if ($form->isValid()) {
|
||||||
$manager->upload($form->get('files')->getData(), $request->query->get('file'));
|
if ($form->get('files')->getData()) {
|
||||||
|
$manager->upload(
|
||||||
|
$form->get('files')->getData(),
|
||||||
|
$request->query->get('file')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($form->get('directory')->getData()) {
|
||||||
|
$manager->upload(
|
||||||
|
$form->get('directory')->getData(),
|
||||||
|
$request->query->get('file'),
|
||||||
|
$_FILES['file_upload']['full_path']['directory'] ?? []
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (!$request->isXmlHttpRequest()) {
|
if (!$request->isXmlHttpRequest()) {
|
||||||
$this->addFlash('success', 'Files uploaded.');
|
$this->addFlash('success', 'Files uploaded.');
|
||||||
|
|
|
@ -195,14 +195,20 @@ class FsFileManager
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function upload($files, string $path)
|
public function upload($files, string $path, array $fullPaths = [])
|
||||||
{
|
{
|
||||||
if ($files instanceof UploadedFile) {
|
if ($files instanceof UploadedFile) {
|
||||||
$files = [$files];
|
$files = [$files];
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($files as $file) {
|
foreach ($files as $key => $file) {
|
||||||
$this->uploadHandler->handleForm($file, $this->path.'/'.$path, null, true);
|
$directory = $this->path.'/'.$path;
|
||||||
|
|
||||||
|
if (isset($fullPaths[$key])) {
|
||||||
|
$directory .= '/'.trim(dirname($fullPaths[$key]), '/');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->uploadHandler->handleForm($file, $directory, null, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ class FileUploadType extends AbstractType
|
||||||
FileType::class,
|
FileType::class,
|
||||||
[
|
[
|
||||||
'label' => 'Files',
|
'label' => 'Files',
|
||||||
'required' => true,
|
'required' => false,
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
'attr' => [
|
'attr' => [
|
||||||
],
|
],
|
||||||
|
@ -31,6 +31,28 @@ class FileUploadType extends AbstractType
|
||||||
],
|
],
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$builder->add(
|
||||||
|
'directory',
|
||||||
|
FileType::class,
|
||||||
|
[
|
||||||
|
'label' => 'Directory',
|
||||||
|
'required' => false,
|
||||||
|
'multiple' => true,
|
||||||
|
'attr' => [
|
||||||
|
'webkitdirectory' => '',
|
||||||
|
'mozdirectory' => '',
|
||||||
|
'directory' => '',
|
||||||
|
],
|
||||||
|
'constraints' => [
|
||||||
|
new All([
|
||||||
|
new File([
|
||||||
|
'mimeTypes' => $options['mimes'],
|
||||||
|
]),
|
||||||
|
]),
|
||||||
|
],
|
||||||
|
]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function configureOptions(OptionsResolver $resolver)
|
public function configureOptions(OptionsResolver $resolver)
|
||||||
|
|
|
@ -192,3 +192,4 @@
|
||||||
"Attributes": "Attributs"
|
"Attributes": "Attributs"
|
||||||
"Choose": "Choisir"
|
"Choose": "Choisir"
|
||||||
"Associated": "Associé(e)"
|
"Associated": "Associé(e)"
|
||||||
|
"Directory": "Répertoire"
|
||||||
|
|
Loading…
Reference in a new issue