分片上传时如何确保所有分片都成功上传了?
我用 JavaScript 做大文件分片上传,前端把文件切成 10MB 一块发给后端。但有时候网络不好,个别分片没传成功,但我不知道是哪一块丢了,最后合并就出错。
现在我在每个请求里加了 chunkIndex,但怎么判断所有分片都收到了?有没有靠谱的校验机制?比如前端传完所有分片后发个“完成”请求,后端再检查数量对不对?
const uploadChunk = async (chunk, index) => {
const formData = new FormData();
formData.append('chunk', chunk);
formData.append('index', index);
await fetch('/upload', { method: 'POST', body: formData });
};
前端可以这样改:
后端收到complete请求后,检查自己收到的分片数量是否匹配,不匹配就返回缺失的分片索引让前端重传。