【发布时间】:2016-12-04 14:53:06
【问题描述】:
我试图找出一种方法,既可以返回视图,又可以调用下载函数。像这样:
return view('home')->download($filename, 'text.csv', $headers);
【问题讨论】:
我试图找出一种方法,既可以返回视图,又可以调用下载函数。像这样:
return view('home')->download($filename, 'text.csv', $headers);
【问题讨论】:
目前有一种使用流式下载的方法。它不漂亮,但它有效。请注意,该函数必须是 echo 而不是 return,因此为什么要在视图上调用 render()。
return response()->streamDownload(function() {
echo view('home')->render();
}
, 'test.csv'
, ['Content-Type' => 'text/csv']
);
【讨论】:
我认为这是不可能的。 Laravel 必须选择发送到浏览器的内容。如果它发送重定向标头,您将看不到该页面。
唯一的解决方案是渲染视图并在视图中放置一个简单的 javascript,例如:
window.location.href = "<your file url>"
如果这是一个文件,它应该在不更改页面的情况下开始下载。
【讨论】: