【问题标题】:What are http headers and when do I need to specify them什么是 http 标头,我什么时候需要指定它们
【发布时间】:2016-09-16 09:58:03
【问题描述】:

我正在尝试使用 laravel 下载文件。我看到很多示例显示标题数组,其中包含链接内容类型/大小等内容。

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

我的代码示例:

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

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

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

谢谢

【问题讨论】:

  • 你有没有试过用谷歌搜索这个主题?标题可以用于很多不同的事情,并且有很多关于它的深入教程等。只需搜索:“什么是 http 标头”,然后查看有关 header() 函数的 PHP 手册。
  • 数据类型,以便服务器知道要输出什么,比如说 JSON、XML 等...应用程序/文本...您应该在 RESTful Web 服务中使用它 您应该在 google 上搜索它,couse这是一个很大的话题......

标签: php laravel download


【解决方案1】:

HTTP 标头为您的网络浏览器提供有关它从请求中获得的响应的额外信息。在您的情况下,Content-type 标头为浏览器提供有关服务器返回的内容类型的信息,无论您信不信。通过指定Content-type: application/pdf,您的浏览器将知道它必须使用 Adob​​e 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,
]);

【讨论】:

  • 你复制了我的答案代码,忘记修复我在file_path中的错误哈哈哈
【解决方案2】:

类似这样的:

return new \Illuminate\Http\Response($file_path, 200, [
            'Content-type' =>  'application/pdf',
            'Content-Disposition' => 'attachment; filename=' . $file_name,
        ]);

这样我们传递正确的标头,响应将处理客户端的返回

【讨论】:

    猜你喜欢
    • 2012-01-04
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 2010-10-15
    • 2019-08-20
    相关资源
    最近更新 更多