1

我们有客户试图通过似乎非常慢的移动连接下载 setup.exe 文件。

他们报告说,当他们单击下载的 setup.exe 时,安装向导会启动,但在安装向导的过程中,他们会收到一条错误消息,表明 cab 文件已损坏或丢失。

他们给我们邮寄了一个问题平板电脑,我们下载了文件没有问题,但我可以通过使用 https 下载文件来复制问题(https 通常用于访问站点的其余部分,尽管下载不是必需的)。当我这样做时,下载的文件是 2.8MB。它应该是 8MB。

我不认为 https 是问题的根本原因,因为我可以使用 http 在浏览器历史记录中看到下载链接,所以我知道客户尝试使用 http 下载。我认为问题在于糟糕的连接阻止了完整的下载,但浏览器的行为就好像它已经完成了一样。

有没有办法确保文件完全下载,或者根本不下载?为什么浏览器不提示下载不完整?

4

1 回答 1

2

最有可能的是,EXE 文件所在的 Web 服务器不发送Content-Length 标头。如果没有此标头,浏览器可以确定下载是否完成的唯一方法是“当字节停止到来时”,即 TCP/IP 连接关闭或超时。如果连接质量低,这很可能过早发生。

另一种选择是发送标头,但浏览器会忽略它。不过,如今这种程度的脑损伤非常罕见,但如果您的浏览器是非标准/嵌入式/古老的,则可能会发生这种情况。

所以,这个问题的解决方案可能是修复 HTTP 服务器。并查看用于构建安装程序包的软件的选项:可能有一个设置来创建最终 EXE 的哈希(或至少记住所需的长度),并抱怨更明智的错误存档损坏时的消息。

于 2010-03-19T12:17:28.283 回答