php下载为文档文件

时间:2010-08-06 13:18:43

标签: php

php文件下载为IE无法正常工作的文件

3 个答案:

答案 0 :(得分:5)

以下是我过去三年一直使用的代码,它运行正常。 刚才我在IE6,IE7,IE8等所有浏览器中都进行了测试,并且在所有这些浏览器中都运行良好。 $ fn是文件的完整路径。 并确保在将文件刷新到浏览器之前我没有使用过ob_clean的其他空格或换行符。

如果你没有在此之上发送其他html代码,那就更好......所以单独使用它而不使用其他内容。否则用ob_start()开始代码;所以在ob_clean()的行上不会有任何额外的字符。

$filename = "$fn";
ob_clean();
header("Cache-Control: no-store");
header("Expires: 0");
header("Content-Type: application/octet-stream");
header("Content-disposition: attachment; filename=\"".basename($filename)."\"");
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));
readfile($filename);

我有一个文件管理模块,我上传文件,用户可以下载。 如果您仍然遇到问题或无法使其正常工作,那么只需添加更多问题,而看到的人就会对此做出回应。

我使用了更多标题的原因是要确保它的工作原因,因为我首先遇到IE 6的问题。

对于安全服务器HTTPS将前两个标头替换为此标头。

header("Cache-Control:  maxage=1");
header("Pragma: public");
这样它对我有用。

答案 1 :(得分:1)

检查以确保标头声明没有错误。 (使用PHP,您必须确保正确声明Content类型,并且是php文件的第一行。http://php.net/manual/en/function.header.php

答案 2 :(得分:0)

设置正确的HTTP标头

<?php
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile('original.pdf');
?>