我试图用laravel下载文件。我看到很多示例显示了带有链接内容类型/大小等的标题数组。
我的问题是这些标题是什么,我什么时候需要设置它们
我的代码示例:
$file_path = public_path() . 'path/to/file' . $file_name;
if (file_exists($file_path)) {
return response()->download($file_path, $file_name);
}
这对我有用。但我已经看到一些例子添加一个标题数组作为第三个参数,我很想知道它的用途。
由于
答案 0 :(得分:0)
这样的事情:
return new \Illuminate\Http\Response($file_path, 200, [
'Content-type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename=' . $file_name,
]);
这样我们传递正确的标题,并且响应将处理客户端的返回
答案 1 :(得分:0)
HTTP标头为您的Web浏览器提供有关其从请求中获取的响应的额外信息。在您的情况下,Content-type
标头为浏览器提供有关服务器返回的内容类型的信息,信不信由你。通过指定Content-type: application/pdf
,您的浏览器将知道必须使用Adobe Reader插件来显示服务器返回的内容。您可以找到有关HTTP标头in this Wikipedia article.
您可以在Laravel应用程序中使用HTTP响应标头,如下所示:
return new \Illuminate\Http\Response(file_path, 200, [
'Content-type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename=' . $file_name,
]);