id/$name"; // Get file size $size = $localDisk->size($filePath); // Get upload limit size $uploadLimit = get_settings('upload_limit'); // Get mimetype try { $fileType = getFileType( $localDisk->mimeType($filePath) ); } catch (UnableToRetrieveMetadata $e) { $fileType = 'file'; } // File size handling if ($uploadLimit && $size > toBytes($uploadLimit)) { abort(413); } // Check if user has enough space to upload file if (! $user->canUpload($size)) { // Delete file from chunk directory $localDisk->delete($filePath); // Abort code abort( response([ 'type' => 'error', 'message' => __t('user_action_not_allowed'), ], 401) ); } if ($fileType === 'image') { // Create multiple image thumbnails ($this->createImageThumbnail)($name, $user->id); // Store exif data if exists $exif = ($this->storeExifData)($filePath); } // Move file to external storage match (config('filesystems.default')) { 's3' => ($this->moveFileToExternalStorage)($name, $user->id), 'ftp', 'azure' => ($this->moveFileToFTPStorage)($name, $user->id), default => null }; // Create new file $file = File::create([ 'mimetype' => $request->input('extension'), 'type' => $fileType, 'parent_id' => ($this->getFileParentId)($request, $user->id), 'name' => $request->input('name'), 'basename' => $name, 'filesize' => $size, 'user_id' => $user->id, 'creator_id' => auth()->check() ? auth()->id() : $user->id, ]); // Attach file into the exif data if ($fileType === 'image') { $exif?->update(['file_id' => $file->id]); } // Return new file return $file; } }