結果:セッションに入れる
セッションに入れてblade側でリダイレクト。
web.php
// ダウンロードできるようにルートを書いておきます。
Route::get('/download-csv', [App\Http\Controllers\HomeController::class, 'downloadCsv'])->name('download.csv');
CsvController
use Illuminate\Support\Facades\Session;
// exportCsv()にCSV出力の処理を書いてます。
$file = $this->exportCsv($request);
// セッションに入れる
Session::flash('csv.file', $file);
HomeController
public function downloadCsv(Request $request)
{
$file = $request->get('file');
if ($file) {
return response()->download(public_path($file))->deleteFileAfterSend();
}
}
app.blade.php
// headに追加
...
<head>
@if(Session::has('csv.file'))
<meta http-equiv="refresh" content="0.5;url={{ route('download.csv', ['file' => Session::get('csv.file')]) }}">
@endif
</head>
おわりに
結構苦労したのでどなたかのお役に立てると嬉しいです。