2013-05-02 83 views
2

我正在使用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。有什麼建議?

回答

2

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