diff --git a/resources/js/helpers/functionHelpers.js b/resources/js/helpers/functionHelpers.js index edefc8b2..ad528370 100644 --- a/resources/js/helpers/functionHelpers.js +++ b/resources/js/helpers/functionHelpers.js @@ -235,6 +235,7 @@ const FunctionHelpers = { formData.set('file', chunk, source_name) formData.set('path', item.path) formData.set('parent_id', item.parent_id) + formData.set('extension', item.file.name.split('.').pop()) formData.set('is_last', isLast) // Upload chunks diff --git a/src/Domain/Files/Actions/UploadFileAction.php b/src/Domain/Files/Actions/UploadFileAction.php index a7b30cc3..e10e7598 100644 --- a/src/Domain/Files/Actions/UploadFileAction.php +++ b/src/Domain/Files/Actions/UploadFileAction.php @@ -36,9 +36,6 @@ class UploadFileAction $chunkName = $file->getClientOriginalName(); - // File name - $fileName = Str::uuid() . '.' . $file->extension(); - // File Path $filePath = Storage::disk('local')->path('chunks/' . $chunkName); @@ -60,6 +57,9 @@ class UploadFileAction if ($request->boolean('is_last')) { $disk_local = Storage::disk('local'); + // File name + $fileName = Str::uuid() . '.' . $request->input('extension'); + // Get user data $user = $userId ? User::find($userId) : Auth::user(); diff --git a/src/Domain/Files/Controllers/UploadFileController.php b/src/Domain/Files/Controllers/UploadFileController.php index be309f5e..747dcf2c 100644 --- a/src/Domain/Files/Controllers/UploadFileController.php +++ b/src/Domain/Files/Controllers/UploadFileController.php @@ -21,15 +21,17 @@ class UploadFileController extends Controller /** * Upload file for authenticated master|editor user */ - public function __invoke( - UploadRequest $request, - ): Response | array { + public function __invoke(UploadRequest $request) { if (is_demo_account()) { return ($this->fakeUploadFile)($request); } try { // Upload and store file record + if (! $request->boolean('is_last')) { + return ($this->uploadFiles)($request); + } + $file = ($this->uploadFiles)($request); return response(new FileResource($file), 201); diff --git a/src/Domain/Files/Requests/UploadRequest.php b/src/Domain/Files/Requests/UploadRequest.php index 986a5a56..5a41a0fe 100644 --- a/src/Domain/Files/Requests/UploadRequest.php +++ b/src/Domain/Files/Requests/UploadRequest.php @@ -1,4 +1,5 @@ 'nullable|uuid', 'path' => 'required|string', 'is_last' => 'sometimes|string', + 'extension' => 'sometimes|string|nullable', 'file' => ['required', 'file', new DisabledMimetypes], ]; }