【发布时间】:2017-12-28 23:38:46
【问题描述】:
我需要在用户浏览器中在线显示 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。我该如何解决这个错误?谢谢
【问题讨论】:
-
如果您提供正确的文件路径,那么您可以使用 get 从请求中获取文件路径来显示文件
-
NotFoundHttpException用于路由文件web.php中不存在的无效路由,因此请检查路由是否存在 -
我将文件存储在
public/jurnal/text.pdf。如何检索正确的路径? @SagarGautam -
我认为您已将文件名存储在数据库中,因此您可以使用
asset($filepath)获取文件的正确路径。asset()提供到public/目录的路径。所以,你可以试试src="{{asset('/jurnal/text.pdf')}}"它应该可以工作 -
是的,它可以工作,但会强制下载文件而不是打开它。 @SagarGautam