IE6“帮助”将后缀添加到下载的文件中

时间:2010-01-28 18:28:50

标签: file download internet-explorer-6

我一直在开发的webapp允许用户上传和下载一种文件,该文件被视为不透明的blob。我的应用程序使用不常用于任何其他目的的文件扩展名,以及指定其MIME Con​​tent-Type为application / octet-stream。

在内部,该文件是一个包含单个压缩文件的简单Zip存档。我发现IE6显然检查了文件的内容,确定它是一个Zip存档,并“帮助”使用额外的“.zip”扩展名保存它。令人难以置信!

正如我所提到的,这个文件是不透明的,我们不希望用户在文件内部徘徊 - 不是因为它很危险或包含敏感信息或任何东西,我们只是不想混淆他们。我建议在Zip内容前面添加一个幻数以防止IE6识别它,但我的经理说如果文件内容可以保持不变,他会更喜欢它,以便知识渊博的人可以重命名文件并将其内容检查为zip存档,如有必要。

有没有办法告诉IE6将文件保留在文件之外?或者任何替代方法? (唉,根本不支持IE6不是一种选择。)

顺便提一下,IE7尊重文件的名称,但仍然在下载对话框中将其标识为Zip存档。这比IE6好,但还不够理想。

3 个答案:

答案 0 :(得分:4)

简答:为您的网络服务器添加正确的MIME类型,以便IE6不会猜测文件类型。

长答案

我的工作与Microsoft PowerPoint文件有类似的问题。

.ppt vs .pps - 哪些是具有不同扩展名的相同文件。我们希望用户查看节目(.pps),但IE6不断将其更改为.ppt。它改变了扩展,因为用户机器安装了PowerPoint并且理解文件“看起来”像一个。 PPT。不明白为什么不.pps。

除了IE6之外,问题是我们的Web服务器(IIS)不知道.pps或.ppt的MIME类型。所以我们必须添加正确的MIME类型,以便服务器不会将它们作为“application / octet-stream”传递。据我所知,通过使用“application / octet-stream”,IE6会尝试猜测MIME类型。

所以我们补充道:

.pps = "application/vnd.ms-powerpoint"
.ppt = "application/vnd.ms-powerpoint"

现在它适用于IE6。

我希望这有助于解决您的问题。

答案 1 :(得分:1)

使用此标题标记:Content-Disposition:attachment;文件名= “yourfilename.extension”

答案 2 :(得分:1)

这是known problemonly solution是编辑客户端计算机的注册表,我相信这对您没有多大帮助。