我们的客户试图通过移动连接下载一个看起来非常慢的setup.exe文件。
他们报告说,当他们点击下载的setup.exe时,安装向导会启动,但在向导的某个部分,他们会收到一条错误消息,指出cab文件已损坏或丢失。
他们向我们提供问题平板电脑,我们下载文件没有问题但是 我可以通过使用https下载文件来复制问题(https通常用于访问网站的其余部分,尽管下载不需要)。当我这样做时,下载的文件是2.8MB。它应该是8MB。
我不认为https是问题的根本原因,因为我可以使用http在浏览器历史记录中看到下载链接,因此我知道客户尝试使用http下载。我认为问题在于连接不良阻止了完整下载,但浏览器就像是完整的一样。
有没有办法确保文件完全下载,或者根本没有?为什么浏览器没有表明下载不完整?
答案 0 :(得分:2)
最有可能的是,EXE文件所在的Web服务器不会发送Content-Length header。如果没有此标题,浏览器可以确定下载是否完成的唯一方法是“当字节停止时”,即TCP / IP连接关闭或超时。如果连接质量低,这可能会过早发生。
另一个选项是发送标头,但浏览器会忽略它。尽管如此,这种程度的脑损伤是非常罕见的,但如果您的浏览器是非标准/嵌入式/古代的话,则可能。
因此,此问题的解决方案可能是修复HTTP服务器。并查看用于构建安装程序包的软件的选项:可能有一个设置来创建最终EXE的哈希(或至少记住所需的长度),并抱怨更明智的错误如果存档已损坏,则显示消息。