現在即時通訊在PHP發送(後來與替換的NodeJS)的標頭文件下載如下:Internet Explorer的內容處置的文件名不工作
<?php
// example array for .exe (for IE, doesnt work)
// i also tried x-msdownload
$file = array('octet-stream', 'download.exe');
header('HTTP/1.0 200 OK');
header('Content-Type: application/'.$file[0]);
// thats the part that doesnt work - i tried inline; attachment; with quotes, without quotes, single quotes, ending ; no ending ;...
header('Content-Disposition: filename="'.$file[1].'";');
header('Content-Length: '.filesize($file[1]));
readfile($file[1]);
exit;
?>
結果總是一樣的 - 我重寫下載到這樣一個文件夾: /download/123/- 內容處置標題應回覆正確的文件名,但IE顯示爲文件名「123」和「未知文件類型」...現在,即使我改寫一切後該ID到文件夾index.php並請求例如:/download/123/something.exe它仍然會顯示爲下載「東西」和「未知文件類型」。無論我設定爲內容類型還是我如何訂購內容處置的價值。
據我所知,這是一個常見的IE問題,只是從來沒有得到解決 - 有沒有人知道這個問題的解決辦法?
謝謝!
編輯:只是爲了確保每個人都知道我想要的正確結果:IE應該得到它的.EXE文件並提供「運行 - 保存 - 取消」對話框而不是「未知文件類型」標準「查找 - 保存 - 取消「對話框。順便說一句。如果我點擊發現它重定向到微軟頁面,解釋我什麼x-msdownload(它現在設置爲內容類型)...
fyi - 即時在OSX和目前IE7運行在交叉,但我確認與我的同事窗口誰也運行IE7和另一個誰運行IE8都有相同的結果。 – Tobias 2010-11-22 23:37:59