Iis 为什么PPTX从网站下载ZIP文件?

Iis 为什么PPTX从网站下载ZIP文件?,iis,zip,ms-office,Iis,Zip,Ms Office,我知道从网站下载(比如)PPTX并将其作为ZIP下载(Office 2007文件格式重命名为ZIP)的问题的根本原因,我知道如何在web服务器中修复它(添加MIME类型) 但我想了解为什么会发生这种情况,以及这个过程的机制是由web服务器和web浏览器执行的。我知道HTTP流量可以自然地压缩和解压缩(gzip)以提高性能,所以我猜这也可能是问题的一部分 例如,假设文件名和路径通过HTTP传回浏览器。重命名扩展名的是web服务器还是web浏览器 一个小小的流程图是理想的。1)web浏览器可能会根据

我知道从网站下载(比如)PPTX并将其作为ZIP下载(Office 2007文件格式重命名为ZIP)的问题的根本原因,我知道如何在web服务器中修复它(添加MIME类型)

但我想了解为什么会发生这种情况,以及这个过程的机制是由web服务器和web浏览器执行的。我知道HTTP流量可以自然地压缩和解压缩(gzip)以提高性能,所以我猜这也可能是问题的一部分

例如,假设文件名和路径通过HTTP传回浏览器。重命名扩展名的是web服务器还是web浏览器

一个小小的流程图是理想的。

1)web浏览器可能会根据文件的前几个字节(通常是二进制文件的某种头)来识别文件类型

正如您所知,Office 2007文件打包为zip文件,因此浏览器(当它没有任何MIME信息提供帮助时)开始下载文件,查看zip头,然后将其保存(或提示您保存)为zip文件

对于浏览器来说,这似乎是一种奇怪的行为,我本以为它会保留服务器提供的文件名(和扩展名),但这可能因浏览器而异,具体取决于提供(或未提供)的MIME类型

2) 或者,当服务器没有与特定文件扩展名关联的MIME类型时,它也可以执行相同的操作。它可能会检查文件的开头,发现它看起来像一个zip文件,因此将使用zip MIME类型将文件返回给客户端

您可以通过检查HTTP响应或原始数据包(服务器端或客户端),排除服务器进行任何MIME类型猜测的可能性


3) Gzipping不会是问题,它发生在较低的级别上,与MIME类型无关。

很抱歉回答了这个非常老的问题,但希望这是有用的信息

pptx(或docx)文件重命名为zip的原因是web服务器和浏览器的操作组合。最可能的情况是,web服务器尚未配置为处理pptx文件,因此它使用内容类型发送它们:text/plain。一些浏览器(如Chrome和Firefox)可能会说“好的,我相信你”,然后按照你的指示保存文件。其他浏览器(如MSIE)可能会说“我会检查一下”;他们会检查文件内容,这表示一个ZIP文件。所以,如果MSIE有一个选项“下载文件时不要检查MIME类型”,那么这就是您需要的


另一个解决方案是web服务器,它确实需要发送内容类型:application/mspowerpoint或类似内容。如果您对web服务器有合适的访问权限,只需在.htaccess文件中添加一行内容,即AddType application/mspowerpoint.pptx,这将迫使服务器发送MSIE将正确解释的内容类型头。

我找到的最好解释是,无论是关于发生这种情况的原因还是如何修复它.

如果您使用下载管理器应用程序(如下载主机),它可以显示详细的日志,包括发送和接收的标题,并捕获该日志,那就太好了。如果看不到它,很难猜测在特定的服务器配置中会发生什么。