在 Laravel 中使用 Response->download() 下载文件后如何删除文件
How to delete a file after downloading it with Response->download() in Laravel
我已经使用 fputcsv() 生成了一个 CSV 文件,然后我 return 从控制器下载了文件。通过浏览器下载成功,但我也想下载后删除文件。
//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);
}
我已经使用 fputcsv() 生成了一个 CSV 文件,然后我 return 从控制器下载了文件。通过浏览器下载成功,但我也想下载后删除文件。
//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);
}