Store admin panel import uploads on private disk and delete them after import

The Filament import upload was stored on the public disk and never deleted.
This commit is contained in:
Constantin Graf
2026-10-14 10:30:53 +02:00
committed by Constantin Graf
parent 0b2a417788
commit b9e3f55537
2 changed files with 46 additions and 11 deletions

View File

@@ -183,7 +183,7 @@ class OrganizationResource extends Resource
->action(function (Organization $record, array $data): void {
try {
try {
$file = Storage::disk(config('filament.default_filesystem_disk'))->get($data['file']);
$file = Storage::disk(config('filesystems.private'))->get($data['file']);
} catch (UnableToReadFile) {
$file = null;
}
@@ -220,12 +220,17 @@ class OrganizationResource extends Resource
->body('Message: '.$exception->getMessage())
->persistent()
->send();
} finally {
Storage::disk(config('filesystems.private'))->delete($data['file']);
}
})
->tooltip(fn (Organization $record): string => 'Import into '.$record->name)
->schema([
FileUpload::make('file')
->label('File')
->disk(config('filesystems.private'))
->directory('admin-import-uploads')
->visibility('private')
->required(),
Select::make('type')
->required()