天天看点

302重定向 php,php – 使用302重定向的Content-Disposition

你要做的是不建议检查这个问题;

Header Location + Content Disposition

Content-Disposition Location标头

但你可以做到,为了使它工作,你必须在发送之前缓冲你的整个响应.您可以使用输出缓冲来完成此操作

否则,浏览器可能会在下载文件之前解释位置标头.这两种方式都很粗略,所以你不应该这样做.

请注意,使用内容处理强制“另存为”:附件;将确保客户端不会去任何地方/导航,所以下面的方法本身应该没问题.

在php中流式传输文件

// To use header() with 'content-type', why don't you use mime_content_type() function rather than checking the type on the basis of extension?

// Example code:

$file="test.docx";

header("Pragma: public");

header('Content-disposition: attachment; filename='.$file);

header("Content-type: ".mime_content_type($file));

header('Content-Encoding: identity');

ob_clean();

flush();

readfile($file);

?>

// Use $file to map to whichever type of file.

// Note: the mime types should already be defined in apache settings

请注意,原始答案使用的是Content-Transfer-Encoding,它实际上并不存在于HTTP中.该消息来源下面的评论解释了它:http://www.php.net/manual/en/function.header.php#107044