Add Files page upload flow with manual folders and duplicate handling.
Deploy Ladill Transfer / deploy (push) Successful in 44s
Deploy Ladill Transfer / deploy (push) Successful in 44s
Users can create folders, upload files or folders, and choose replace or keep both on name conflicts instead of auto-grouping by transfer. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -122,6 +122,24 @@ class TransferService
|
||||
}
|
||||
|
||||
private function storeFile(User $user, Transfer $transfer, UploadedFile $file): TransferFile
|
||||
{
|
||||
return $this->storeFileWithName(
|
||||
$user,
|
||||
$transfer,
|
||||
$file,
|
||||
$file->getClientOriginalName() ?: ('file.'.($file->getClientOriginalExtension() ?: 'bin')),
|
||||
);
|
||||
}
|
||||
|
||||
public function addStorageFile(User $user, Transfer $transfer, UploadedFile $file, string $displayName): TransferFile
|
||||
{
|
||||
$stored = $this->storeFileWithName($user, $transfer, $file, $displayName);
|
||||
$transfer->increment('storage_bytes', $stored->size_bytes);
|
||||
|
||||
return $stored;
|
||||
}
|
||||
|
||||
private function storeFileWithName(User $user, Transfer $transfer, UploadedFile $file, string $displayName): TransferFile
|
||||
{
|
||||
$uuid = Str::uuid()->toString();
|
||||
$ext = $file->getClientOriginalExtension() ?: 'bin';
|
||||
@@ -131,7 +149,7 @@ class TransferService
|
||||
|
||||
return TransferFile::create([
|
||||
'transfer_id' => $transfer->id,
|
||||
'original_name' => $file->getClientOriginalName() ?: 'file.'.$ext,
|
||||
'original_name' => $displayName,
|
||||
'disk' => 'qr',
|
||||
'path' => $path,
|
||||
'mime_type' => $file->getMimeType() ?: 'application/octet-stream',
|
||||
@@ -208,7 +226,7 @@ class TransferService
|
||||
|
||||
$transfer->decrement('storage_bytes', $size);
|
||||
|
||||
if ($transfer->files()->count() === 0) {
|
||||
if ($transfer->files()->count() === 0 && ! $transfer->shouldPersistWhenEmpty()) {
|
||||
$this->delete($transfer->fresh(['files', 'qrCode']));
|
||||
}
|
||||
});
|
||||
@@ -248,7 +266,7 @@ class TransferService
|
||||
foreach ($sourceAdjustments as $sourceId => $bytes) {
|
||||
Transfer::query()->whereKey($sourceId)->decrement('storage_bytes', $bytes);
|
||||
$source = Transfer::query()->with('files')->find($sourceId);
|
||||
if ($source && $source->files->isEmpty() && $source->status !== Transfer::STATUS_DELETED) {
|
||||
if ($source && $source->files->isEmpty() && $source->status !== Transfer::STATUS_DELETED && ! $source->shouldPersistWhenEmpty()) {
|
||||
$this->delete($source->fresh(['files', 'qrCode']));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user