我们的networking服务器上有一些文件,这些文件是有效的zip文件,但被另一个程序用作数据文件。 但是,使用Internet Explorer 8下载这些文件(通过单击href链接)时,它们将被重命名为* .zip,因此它们不再与正确的程序相关联。
有什么我可以做我们的networking服务器,或下载页面的HTML,这将阻止IE重命名这些文件?
FireFox和Chrome以原来的名字离开文件,所以没有这个问题。
首先是一些背景
您的Web服务器通过使用某些MIME魔术确定该文件是有效的ZIP存档。 所以它通过下面的头文件传递HTTP响应:
Content-Type: application/zip
当IE8收到文件时,已经被告知它是一个ZIP文件。 然后,在默认安全设置“打开基于内容的文件,而不是文件扩展名”时,它从HKEY_CLASSES_ROOT\MIME\Database\Content Type的registry中查找该内容types的指定扩展名。
有几种方法可以解决这个问题。 你可以修改上面本地机器上的两个variables之一。 但我当然不会build议尽可能更改本地机器设置 – 这是骇人听闻的,不会扩展。 最好的解决scheme是通过以下方式来修改Web服务器:
为文件的原始扩展名设置一个静态MIME声明,作为application/octet-stream发送。 这将提示文件作为直接的二进制文件传送,没有内容信息。
为头文件Content-Disposition: attachment提供服务,这将导致IE尊重Web服务器指定的文件名。 虽然这可能不是那么简单,取决于你的平台。
你使用IE8下载它? 如果是这样,您需要将该网站添加到IE8中的可信站点列表中,以便正确下载。
出于安全考虑,Internet Explorer 8在命名文件时遵循由服务器指定的MIMEtypes。
您可以尝试configuration服务器的MIMEtypes,并在Internet Explorer 8中添加“xyz”(replace为文件扩展名)或取消激活此行为:
Internet选项 - >安全设置
“自定义级别” - >其他部分:
根据内容打开文件,而不是文件扩展名