【问题标题】:How to display pdf in browser?如何在浏览器中显示pdf?
【发布时间】: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

标签: laravel laravel-5


【解决方案1】:

只是改变

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

【讨论】:

    【解决方案2】:

    如果您想使用存储,请不要将文件存储在公用文件夹中。将默认存储驱动程序的文件存储在 storage/app/jurnal/text.pdf 下。然后你可以得到文件

    return response()-&gt;download( Storage::getDriver()-&gt;getAdapter()-&gt;applyPathPrefix("jurnal/text.pdf");

    【讨论】:

      【解决方案3】:

      使用 laravel 5.2 及更高版本提供的file responses

      return response()->file($pathToFile);
      

      【讨论】:

      • 检查$filepath中的文件是否可读,同时检查路径是否正确
      • 我将文件存储在public/jurnal/text.pdf。如何检索正确的路径?
      • 试试这个Storage::url($filename)文件名是jurnal/text.pdf或者在config/filesystems.php中设置public/jurnal作为默认路径参考:stackoverflow.com/questions/28964412/…
      猜你喜欢
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 2013-09-08
      • 2014-06-25
      • 2011-06-18
      相关资源
      最近更新 更多