如何通过基于表单的网页文件上传来判断文件是否已损坏(输入类型=“文件”)

时间:2014-05-21 20:21:45

标签: html html5 forms file-upload corruption

在基于表单的网页文件上传过程中是否可能发生文件损坏?我在谈论当“文件”类型的输入作为表单的一部分提交并且文件保存在服务器上的某个地方时(通常在服务器应用程序定义的临时上载目录中)。如果在此传输过程中可能存在损坏,在执行上载之前是否有任何方法可以在不知道文件校验和的情况下判断并确认上载后校验和没有更改?

我们都会定期将文件上传到各个网站,而无需提前计算校验和。如果没有某种检查,我们每次都会冒着腐败的风险吗?

1 个答案:

答案 0 :(得分:3)

不应该有任何损坏:TCP(HTTP'底层传输)使用校验和进行内置的消息完整性检查。是的,消息损坏的可能性很小,校验和是正确的,但这通常不值得你去识别和纠正。根据这篇论文(http://dl.acm.org/citation.cfm?id=347561&dl=GUIDE&coll=GUIDE),传输损坏数据包的几率介于1百万分之一到100亿分之一之间。大多数数据包大约为1.4KB(由于以太网的MTU),因此如果您的平均上传文件为1MB,则每个1MB上传文件被破坏的风险介于2800之间或170万之中。这是一个相当大的范围,2800中的1位数字肯定会让我停下来思考,但这只是你的召唤。

TCP确保在收件人的网络堆栈检测到损坏时重新发送数据包,这对使用TCP的应用程序是透明的,尤其是基于浏览器的应用程序。

顺便说一下,您可以使用HTTPS来提高消息完整性的安全性。