我有 React 前端和 Flask 后端 Web 应用程序。在此网络应用程序中,我通过 HTTP multipart/form-data
从客户端将大型 CSV 文件上传到服务器。为了实现这一点,我在 <form encType='multipart/form-data'>
元素中获取文件信息,使用 <input type='file'>
。然后我使用 axios.post
向服务器发出 POST 请求。
在 Flask 服务器端,我使用 request.files['file']
访问文件并使用 file.save
保存文件。这按预期工作。文件传输成功。
我正在考虑在客户端和服务器端计算 MD5 校验和,以确保双方都有具有相同 MD5 哈希的文件。但是,这需要从磁盘中分块读取文件并计算 MD5。 (因为我正在处理大文件,所以不可能在内存中加载整个文件)。所以,我认为这有点低效。我想知道这种通过“HTTP multipart/form-data”的传输是否提供可靠性保证?如果是这样,我可以忽略MD5验证对吗?
如果不能保证可靠性,是否有什么好的方法可以确保双方拥有完全相同的文件副本?提前致谢。
答案 0 :(得分:0)
HTTP 完整性与底层传输协议一样可靠,无论是 TCP(HTTP/1 和 2)还是 UDP(HTTP/3)。位可以跌倒并仍然产生有效的校验和。这个does happen。
如果您想绝对确保收到的文件与上传者预期的文件相同,您需要自己添加校验和,例如使用 SHA 或 MD5。