Я создал файл CSV с помощью fputcsv (), а затем возвращаю загруженный файл с контроллера. Он успешно загружается через браузер, но я также хочу удалить файл после его загрузки.
//controller class
public function downloadCSV{
...
return response()->download($filePath, $fileName, $headers);
}
Как я могу вызвать функцию удаления.
//controller class
csvService->deleteCSV($fileName);
//csvService class
public function deleteCSV($filename) {
if (File::exists(storage_path($filename))) {
File::delete(storage_path($filename));
}
}
Я пробовал следующее. Файл не загружается, но успешно удален.
public function downloadCSV(...)
...
response()->download($filePath, $fileName, $headers);
return $csvService->deleteCSV($fileName);
}






Воспользуйтесь методом deleteFileAfterSend:
return response()->download($filePath, $fileName, $headers)->deleteFileAfterSend(true);
//controller class
public function downloadAndDeleteCSV{
...
return response()->download($filePath, $fileName, $headers)->deleteFileAfterSend(true);
}
вам нужно использовать очереди: laravel.com/docs/5.6/queues