Internet-Explorer-8

下載時停止 IE8 將文件重命名為 .zip?

  • July 15, 2009

我們的網路伺服器上有一些文件,它們是有效的 zip 文件,但被另一個程序用作數據文件。但是,當使用 Internet Explorer 8 下載這些文件(通過點擊 href 連結)時,它們會被重命名為 *.zip,因此它們不再與正確的程序相關聯。

我可以在我們的網路伺服器或下載頁面的 html 上做些什麼來阻止 IE 重命名這些文件?

FireFox 和 Chrome 將文件保留為原始名稱,因此不存在此問題。

首先是一些背景..

您的 Web 伺服器正在使用一些 MIME 魔法來確定該文件是有效的 ZIP 存檔。因此,它提供帶有以下標頭的 HTTP 響應:

Content-Type: application/zip

當 IE8 收到文件時,它已經被告知它是一個 ZIP。然後,當它處於“基於內容而不是文件副檔名打開文件”的預設安全設置中時,它會從系統資料庫中查找該內容類型的指定副檔名HKEY_CLASSES_ROOT\MIME\Database\Content Type

有幾種方法可以攻擊它。您可以修改上面本地機器上的兩個變數中的任何一個。但我當然不建議盡可能更改本地機器設置——它很老套而且無法擴展。最好的解決方案是通過以下方式修改 Web 伺服器:

  • 為文件的原始副檔名設置靜態 MIME 聲明,以application/octet-stream. 這將提示文件以直接二進制形式傳遞,沒有內容資訊。
  • 提供帶有標題的文件,Content-Disposition: attachment這將導致 IE 尊重 Web 伺服器指定的文件名。不過,這可能不是那麼簡單,具體取決於您的平台。

引用自:https://serverfault.com/questions/40971