经过多次搜索,我在将请求重定向到其他页面后通过四个步骤实现了在新窗口中下载 pdf 文件的想法-
1). Session::flash('myfileNameThatStoredInDb', $orders->order_invoice);
2)。使用以下代码在控制器中创建一个函数
public function pdfDownload($image_url){
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($image_url) . "\"");
readfile(\Url('storage').'/invoice'.'/'.$image_url);
}
3)。为上述方法创建路线。
Route::get('/pdfdownload/{url}',"OrderController@pdfDownload");
4)。检查 Session 并在 html 文件标签中获取其值并将其附加到控制器的方法路径
@if(Session::has('download.in.the.next.request'))
<meta http-equiv="refresh" content="5; url={{ asset('pdfdownload/'.Session::get('download.in.the.next.request')) }}">
@endif
注意-> 这段代码在 Laravel 中运行良好,我的目的只是给出一个想法。谢谢