我正在使用PHP生成动态PDF报告,并且在链接到网络时出现了一些问题。
我的链接指向强制下载文件附件的PHP脚本。当通过浏览器访问时,此脚本可在所有浏览器中完美运行。它也可以在除Internet Explorer之外的所有浏览器中使用PDF。
而不是IE将文件视为PDF,PNG或任何文件,下载提示说文档类型为:“HTML插件文档”
如果用户点击“打开”或“保存”,IE表示无法下载文件并将文件名设为“index2.php”。这是地址URI的开头。
给出了正确的文件大小,所以我知道它正在获取文件。也许这是一个标题问题?
以下是我在下载脚本上创建的标题:
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT;");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT;");
header("Pragma: no-cache;"); // HTTP/1.0
header('Content-Type: '.$file->file_mime_type.';');
header("Content-Description: File Transfer");
header("Cache-Control: public");
header('Content-Disposition: attachment; filename="'.$file->file_name.'";');
header('Content-Length: '.$file->file_size.';');
header('Content-transfer-encoding: binary');
非常感谢任何输入。
答案 0 :(得分:5)
header('Content-Disposition: attachment; filename="'.$file->filename.'"');
答案 1 :(得分:5)
这是我使用的,并且证明有效:
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="'.$file->file_name.'"');
readfile($filename);
答案 2 :(得分:4)
值得一提的是,在通过SSL传输文件时,IE的多个版本也存在已知问题,需要进行以下解决方法:
header("Cache-Control: maxage=1");
header("Pragma: public");
此处有关于此错误的更多信息:http://support.microsoft.com/kb/812935