【问题标题】:how to set header in laravel before firing a download如何在启动下载之前在 laravel 中设置标题
【发布时间】:2018-02-23 11:13:18
【问题描述】:

我想在下载之前设置标题。

在我以前用普通的 php 做这样的事情之前:

      header('Content-Description: File Transfer');
      header('Content-Type: application/pdf');
      header('Content-Disposition: attachment; filename="'.basename($path).'"');
      header('Expires: 0');
      header('Cache-Control: must-revalidate');
      header('Pragma: public');
      header('Content-Length: ' . filesize($path));
      readfile($path);

现在我希望仍然能够设置相同的标头并调用 laravel 下载函数并传递我的标头,例如:

return response()->download($pathToFile, $name, $headers);

$headers 变量应该包含我的标题。任何曾经这样做过的人。

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    就这么简单

    $headers = [
        'Content-Description' => 'File Transfer',
        'Content-Type' => 'application/pdf',
    ];
    
    return \Response::download($pathToFile, $name, $headers);
    

    【讨论】:

    • 这很有帮助,太棒了! @Mohamed Kawsara
    【解决方案2】:

    来自docs

    您可以使用 header 方法将一系列标头添加到响应中,然后再将其发送回用户:

    return response($content)
                ->header('Content-Type', $type)
                ->header('X-Header-One', 'Header Value')
                ->header('X-Header-Two', 'Header Value');
    

    或者,您可以使用 withHeaders 方法指定要添加到响应中的标头数组:

    return response($content)
                ->withHeaders([
                    'Content-Type' => $type,
                    'X-Header-One' => 'Header Value',
                    'X-Header-Two' => 'Header Value',
                ]);
    

    【讨论】:

    • 这很有帮助,太棒了! @先生。金字塔
    • @SamuelThomas 很高兴!
    【解决方案3】:

    将标题附加到响应

    请记住,大多数响应方法都是可链接的,允许流畅地构建响应实例。例如,您可以使用 header 方法将一系列标头添加到响应中,然后再将其发送回用户:

    return response($content)
                ->header('Content-Type', $type)
                ->header('X-Header-One', 'Header Value')
                ->header('X-Header-Two', 'Header Value');
    

    或者,您可以使用 withHeaders 方法指定要添加到响应中的标头数组:

    return response($content)
                ->withHeaders([
                    'Content-Type' => $type,
                    'X-Header-One' => 'Header Value',
                    'X-Header-Two' => 'Header Value',
                ]);
    

    点击此链接将对您有所帮助 https://laravel.com/docs/5.4/responses#attaching-headers-to-responses

    【讨论】:

    • 这很有帮助,太棒了! @Umair Mehmood
    • 没关系,兄弟,随时为您提供帮助。喜欢就给个赞吧。。
    猜你喜欢
    • 1970-01-01
    • 2019-09-24
    • 2013-11-26
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 2022-10-08
    • 2016-04-29
    • 1970-01-01
    相关资源
    最近更新 更多