IE忽略八位字节流 - 如何强制下载?

IE忽略八位字节流 - 如何强制下载?

问题描述:

我正在使用wkhtmltopdf来生成PDF文件。该程序接受两个ContentType值中的一个,'application/pdf'和'application/octet-stream'。我希望生成的PDF文件保存到用户的机器上,所以我将它设置为'application/octet-stream'。 Chrome按照预期提示下载。 FireFox也是如此。当然,Internet Explorer会忽略此设置,而是在浏览器窗口中打开PDF文件。我正在使用Internet Explorer 8和9进行测试。我无法访问服务器,并且我不想在任何情况下更改所有PDF文件的处理方式。我希望此应用程序提示用户下载该文件,并且需要知道如何强制IE执行此操作而不是忽略ContentType值。IE忽略八位字节流 - 如何强制下载?

我使用Fiddler2来检查IE和Chrome中的ContentType是如何报告的,并且都显示'application/octet-stream',所以我不确定IE为什么坚持在浏览器中渲染PDF。有什么建议?

PHP代码:

header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Pragma: public"); 
header("Content-Type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=\"filename\""); 

这应该工作。

+0

作为'attachment'的Content-Disposition对我来说与s octet-stream mime类型结合起来了。其他设置让我的浏览器耸耸肩。感谢这篇文章。 +1 – Paul 2014-02-27 18:52:43