如何在浏览器中显示pdf?

时间:2017-07-23 07:45:51

标签: laravel laravel-5

我需要在用户浏览器中在线显示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中。我该如何解决这个错误?谢谢

3 个答案:

答案 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>