Laravelで一時ファイルをレスポンスで返した後にファイルを削除したい!
...と思って調べたところ、
公式ドキュメントなどでは見つからなかったので記載します。
結論から書くとdeleteFileAfterSend() というSymfony由来の機能を使います。
※LaravelはSymfonyを組み込んだフレームワークなので最初から入っています。
使い方は簡単で、fileのレスポンスをする際に ->deleteFileAfterSend(true) をつけるだけでOKです。
例1:
return response()->file($file_path)->deleteFileAfterSend(true); // 出力して元ファイル削除
例2:
return response()->download($file_path, $file_name)->deleteFileAfterSend(true); // 出力して元ファイル削除
参考になれば幸いです。