diff --git a/packages/actions/src/Concerns/CanExportRecords.php b/packages/actions/src/Concerns/CanExportRecords.php index af0f0907dc..79a6124453 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(); + // Clear the export directory to prevent data contamination from previous exports with the same ID + $export->clearFileDirectory(); + $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..edc8529615 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 clearFileDirectory(): void + { + $directory = $this->getFileDirectory(); + $disk = $this->getFileDisk(); + + if ($disk->directoryExists($directory)) { + $disk->deleteDirectory($directory); + } + } }