我想在开始下载之前设置标题。
之前我曾经在普通的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变量应该包含我的标题' s。任何曾经做过这件事的人。
答案 0 :(得分: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',
]);
答案 1 :(得分:1)
这很简单
$headers =[
'Content-Description' => 'File Transfer',
'Content-Type' => 'application/pdf',
];
return \Response::download($pathToFile, $name,$headers);
答案 2 :(得分:1)
将标题附加到回复
请记住,大多数响应方法都是可链接的,允许流畅构建响应实例。例如,您可以使用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