From 6854c296d5bb1aec928495283e617368a94f0582 Mon Sep 17 00:00:00 2001 From: hasanilingi Date: Sat, 27 Mar 2021 23:25:42 +0100 Subject: [PATCH] Dropzone uploadMultiple: true error fix When you set Dropzone.options.uploadForm.uploadMultiple : true in config of an instance of dropzone 5.7.2 the request is created by dropzone creates multidimensional input of the upload like below; upload[][0]: (binary) upload[][1]: (binary) upload[][2]: (binary) When you send this request it is trying to validate this array values which is already array in UniSharp\LaravelFilemanager::uploadValidator() but it is not a instance of UploadedFile it is instance of array. So with flatting this array we convert request array to a single dimension array like below; upload[0]: (binary) upload[1]: (binary) upload[2]: (binary) --- src/Controllers/UploadController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Controllers/UploadController.php b/src/Controllers/UploadController.php index bcb1b9e8..5bcbed97 100644 --- a/src/Controllers/UploadController.php +++ b/src/Controllers/UploadController.php @@ -6,6 +6,7 @@ use UniSharp\LaravelFilemanager\Events\ImageIsUploading; use UniSharp\LaravelFilemanager\Events\ImageWasUploaded; use UniSharp\LaravelFilemanager\Lfm; +use Illuminate\Support\Arr; class UploadController extends LfmController { @@ -29,7 +30,7 @@ public function upload() $error_bag = []; $new_filename = null; - foreach (is_array($uploaded_files) ? $uploaded_files : [$uploaded_files] as $file) { + foreach (is_array($uploaded_files) ? Arr::flatten($uploaded_files) : [$uploaded_files] as $file) { try { $new_filename = $this->lfm->upload($file); } catch (\Exception $e) {