diff --git a/packages/actions/src/Concerns/CanExportRecords.php b/packages/actions/src/Concerns/CanExportRecords.php index af0f0907dc..b7765f7c0c 100644 --- a/packages/actions/src/Concerns/CanExportRecords.php +++ b/packages/actions/src/Concerns/CanExportRecords.php @@ -176,6 +176,9 @@ trait CanExportRecords // Temporary save to obtain the sequence number of the export file. $export->save(); + // Delete the export directory to prevent data contamination from previous exports with the same ID. + $export->deleteFileDirectory(); + $export->file_name = $action->getFileName($export) ?? $exporter->getFileName($export); $export->save(); diff --git a/packages/actions/src/Exports/Models/Export.php b/packages/actions/src/Exports/Models/Export.php index 270d12b0df..e3ce96271b 100644 --- a/packages/actions/src/Exports/Models/Export.php +++ b/packages/actions/src/Exports/Models/Export.php @@ -99,4 +99,14 @@ class Export extends Model { return 'filament_exports' . DIRECTORY_SEPARATOR . $this->getKey(); } + + public function deleteFileDirectory(): void + { + $disk = $this->getFileDisk(); + $directory = $this->getFileDirectory(); + + if ($disk->directoryExists($directory)) { + $disk->deleteDirectory($directory); + } + } }