我需要在用户浏览器中在线显示pdf,但我无法使其正常工作。
我的控制器:
public function showJournal($file) {
$filepath = Storage::disk('jurnal')->get($file);
return (new Response($filepath, 200))
->header('Content-Type', 'application/pdf');
}
路线:
Route::get('view_journal/{file}', 'JournalController@showJournal')->name('showjurnal');
观点:
<iframe src="{{route('showjurnal', $journal->file)}}" frameborder="0" style="width:100%;min-height:640px;"></iframe>
上述代码无法正常工作,因为它始终返回错误NotFoundHttpException in RouteCollection.php line 161:
。该文件存储在public/jurnal
中。我该如何解决这个错误?谢谢
答案 0 :(得分:2)
使用laravel 5.2及以上版本中的file responses
return response()->file($pathToFile);
答案 1 :(得分:0)
如果要使用存储,请将文件存储在公用文件夹中。将文件存储在storage / app / jurnal / text.pdf下,作为默认存储驱动程序。然后你可以用
获取文件 return response()->download( Storage::getDriver()->getAdapter()->applyPathPrefix("jurnal/text.pdf")
;
答案 2 :(得分:0)
只需更改
<iframe src="{{route('showjurnal', $journal->file)}}" frameborder="0" style="width:100%;min-height:640px;"></iframe>
要
<iframe src="{{ url(Storage::disk('jurnal')->url($journal->file)) }}" frameborder="0" style="width:100%;min-height:640px;"></iframe>