Http 服务器端脚本可以让浏览器确保完全下载吗?

Http 服务器端脚本可以让浏览器确保完全下载吗?,http,browser,download,Http,Browser,Download,我的服务器上有一个脚本,它生成内容并将其作为文件发送给用户下载。问题是,有时内容可能有点长,有时通信可能会在下载过程中死亡。在这种情况下,下载将停止,并保存迄今为止发送的内容。如果可以通知用户文件尚未完全下载,以便用户重试,则情况不会太糟。但从用户的角度来看,通常没有什么不对的地方:浏览器只是简单地宣布下载完成!然后,用户发现出现了一个问题,部分文件丢失,直到后来他们真正尝试打开文件并使用它时才发现,这已经太晚了 那么,有没有一种方法可以让服务器端脚本发送要由浏览器下载的文件,以便在下载未完成时

我的服务器上有一个脚本,它生成内容并将其作为文件发送给用户下载。问题是,有时内容可能有点长,有时通信可能会在下载过程中死亡。在这种情况下,下载将停止,并保存迄今为止发送的内容。如果可以通知用户文件尚未完全下载,以便用户重试,则情况不会太糟。但从用户的角度来看,通常没有什么不对的地方:浏览器只是简单地宣布下载完成!然后,用户发现出现了一个问题,部分文件丢失,直到后来他们真正尝试打开文件并使用它时才发现,这已经太晚了

那么,有没有一种方法可以让服务器端脚本发送要由浏览器下载的文件,以便在下载未完成时让浏览器显示错误

顺便说一下,为了发送文件,我使用以下三个HTTP头:

Content-Type: application/octet-stream
Content-Disposition: attachment; filename="MyFile.ext"
Content-Length: <no. of bytes>
实际上,我可以提前知道内容的长度,当浏览器通知用户下载时,它会向用户显示这个数字。但是,在下载正确的字节数之前,当下载完成时,浏览器不会说任何话,而且我不能期望我的用户检查他们下载的文件的确切大小,并将其与浏览器之前宣布的内容进行比较

是否存在可能使浏览器在这种情况下宣布错误的浏览器配置?或者,我是否可以发送另一个HTTP头,或者发送一些校验和或CRC,或者发送一些具有预期效果的内容

任何帮助都将不胜感激

编辑:下面是一个简单的PHP代码,用于在下载量过小的情况下测试浏览器的行为:

<?php
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="test.txt"');
header('Content-Length: 300');
echo 'Will there be a warning?';

这段代码将一个名为test.txt的文件发送到浏览器进行下载,该文件据称有300字节长。事实上,内容要小得多。浏览器会等待更多内容一段时间,然后放弃并在没有任何警告的情况下宣布下载完成。

您确定内容长度正确吗?如果下载数据