【问题标题】:Laravel - Is there a way to return a view and download?Laravel - 有没有办法返回视图和下载?
【发布时间】:2016-12-04 14:53:06
【问题描述】:

我试图找出一种方法,既可以返回视图,又可以调用下载函数。像这样:

return view('home')->download($filename, 'text.csv', $headers);

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    目前有一种使用流式下载的方法。它不漂亮,但它有效。请注意,该函数必须是 echo 而不是 return,因此为什么要在视图上调用 render()

    return response()->streamDownload(function() {
            echo view('home')->render();
        }
        , 'test.csv'
        , ['Content-Type' => 'text/csv']
    );
    

    【讨论】:

      【解决方案2】:

      我认为这是不可能的。 Laravel 必须选择发送到浏览器的内容。如果它发送重定向标头,您将看不到该页面。

      唯一的解决方案是渲染视图并在视图中放置一个简单的 javascript,例如:

      window.location.href = "<your file url>"
      

      如果这是一个文件,它应该在不更改页面的情况下开始下载。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多