- Fixed upload issue

This commit is contained in:
Čarodej
2022-05-09 16:58:14 +02:00
parent a43c799d59
commit 911f15d493
6 changed files with 40 additions and 23 deletions
+12 -16
View File
@@ -26,15 +26,15 @@ class ProcessFileAction
public function __invoke(
UploadRequest $request,
User $user,
string $chunkPath,
string $name,
) {
// Get local disk instance
$localDisk = Storage::disk('local');
$filePath = "files/$user->id/$name";
// Get file data
$size = $localDisk->size($chunkPath);
$mimetype = $localDisk->mimeType($chunkPath);
$name = Str::uuid() . '.' . $request->input('extension');
$size = $localDisk->size($filePath);
$mimetype = $localDisk->mimeType($filePath);
// Get upload limit
$uploadLimit = get_settings('upload_limit');
@@ -47,26 +47,22 @@ class ProcessFileAction
// Check if user has enough space to upload file
if (! $user->canUpload($size)) {
// Delete file from chunk directory
$localDisk->delete($chunkPath);
// Set up response
$response = response([
'type' => 'error',
'message' => __t('user_action_not_allowed'),
], 401);
$localDisk->delete($filePath);
// Abort code
abort($response);
abort(
response([
'type' => 'error',
'message' => __t('user_action_not_allowed'),
], 401)
);
}
// Move file to user directory
$localDisk->move($chunkPath, "files/$user->id/$name");
// Create multiple image thumbnails
($this->createImageThumbnail)($name, $user->id);
// Store exif data if exists
$exif = ($this->storeExifData)("files/$user->id/$name");
$exif = ($this->storeExifData)($filePath);
// Move file to external storage
match (config('filesystems.default')) {
@@ -1,7 +1,6 @@
<?php
namespace Domain\Files\Actions;
use Log;
use Str;
use Storage;
use Exception;
@@ -53,8 +52,6 @@ class StoreExifDataAction
'latitude_ref' => $exif->GPSLatitudeRef ?? null,
]);
} catch (Exception $error) {
Log::error('Unable to get exif data');
return null;
}
}
@@ -1,6 +1,8 @@
<?php
namespace Domain\Files\Controllers;
use Storage;
use Illuminate\Support\Str;
use Domain\Folders\Models\Folder;
use App\Http\Controllers\Controller;
use Domain\Files\Requests\UploadRequest;
@@ -42,8 +44,14 @@ class UploadFileController extends Controller
->user
: auth()->user();
// Get file name
$name = Str::uuid() . '.' . $request->input('extension');
// Move file to user directory
Storage::disk('local')->move($chunkPath, "files/$user->id/$name");
// Process file
$file = ($this->processFie)($request, $user, $chunkPath);
$file = ($this->processFie)($request, $user, $name);
return response(new FileResource($file), 201);
}
@@ -1,6 +1,8 @@
<?php
namespace Domain\Files\Controllers;
use Str;
use Storage;
use Domain\Sharing\Models\Share;
use App\Http\Controllers\Controller;
use Domain\Files\Requests\UploadRequest;
@@ -53,8 +55,14 @@ class VisitorUploadFileController extends Controller
// Proceed after last chunk
if ($request->boolean('is_last')) {
// Get file name
$name = Str::uuid() . '.' . $request->input('extension');
// Move file to user directory
Storage::disk('local')->move($chunkPath, "files/{$shared->user->id}/$name");
// Process file
$file = ($this->processFie)($request, $shared->user, $chunkPath);
$file = ($this->processFie)($request, $shared->user, $name);
// Set public access url
$file->setSharedPublicUrl($shared->token);
@@ -8,6 +8,8 @@ use Domain\Files\Actions\ProcessFileAction;
use Domain\UploadRequest\Models\UploadRequest;
use Domain\Files\Actions\StoreFileChunksAction;
use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Illuminate\Support\Str;
use Storage;
class UploadFilesForUploadRequestController
{
@@ -40,8 +42,14 @@ class UploadFilesForUploadRequestController
// Proceed after last chunk
if ($request->boolean('is_last')) {
// Get file name
$name = Str::uuid() . '.' . $request->input('extension');
// Move file to user directory
Storage::disk('local')->move($chunkPath, "files/{$uploadRequest->user->id}/$name");
// Process file
$file = ($this->processFie)($request, $uploadRequest->user, $chunkPath);
$file = ($this->processFie)($request, $uploadRequest->user, $name);
// Set public access url
$file->setUploadRequestPublicUrl($uploadRequest->id);