什么是http标头,何时需要指定它们

时间:2016-09-16 09:58:04

标签: php laravel download

我试图用laravel下载文件。我看到很多示例显示了带有链接内容类型/大小等的标题数组。

我的问题是这些标题是什么,我什么时候需要设置它们

我的代码示例:

$file_path = public_path() . 'path/to/file' . $file_name;

        if (file_exists($file_path)) {
            return response()->download($file_path, $file_name);
        }

这对我有用。但我已经看到一些例子添加一个标题数组作为第三个参数,我很想知道它的用途。

由于

2 个答案:

答案 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,
]);