Merge branch 'feature/upload-directory' into develop
This commit is contained in:
commit
c3f0532500
|
@ -275,7 +275,20 @@ class FileManagerAdminController extends AdminController
|
|||
$form->handleRequest($request);
|
||||
|
||||
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()) {
|
||||
$this->addFlash('success', 'Files uploaded.');
|
||||
|
|
|
@ -195,14 +195,20 @@ class FsFileManager
|
|||
return true;
|
||||
}
|
||||
|
||||
public function upload($files, string $path)
|
||||
public function upload($files, string $path, array $fullPaths = [])
|
||||
{
|
||||
if ($files instanceof UploadedFile) {
|
||||
$files = [$files];
|
||||
}
|
||||
|
||||
foreach ($files as $file) {
|
||||
$this->uploadHandler->handleForm($file, $this->path.'/'.$path, null, true);
|
||||
foreach ($files as $key => $file) {
|
||||
$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,
|
||||
[
|
||||
'label' => 'Files',
|
||||
'required' => true,
|
||||
'required' => false,
|
||||
'multiple' => true,
|
||||
'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)
|
||||
|
|
|
@ -192,3 +192,4 @@
|
|||
"Attributes": "Attributs"
|
||||
"Choose": "Choisir"
|
||||
"Associated": "Associé(e)"
|
||||
"Directory": "Répertoire"
|
||||
|
|
Loading…
Reference in New Issue