大文件上传

断点续传

断点续传是一种在网络文件传输中,允许从中断处重新连接并继续传输的技术。

错误重试

错误重试是多次尝试相同操作以应对可能中断的错误或失败情况,以提高成功概率的方法。

控制并发

控制并发上传是限制同时上传文件数量以防服务器过载或网络拥堵,通过限制连接数或速度确保稳定上传;同时运用断点续传和重试提升上传成功率和用户体验。

大文件上传流程:

1. 用户点击按钮或选择文件后,禁用上传按钮,并获取所选文件。

2. 使用FileReader的readAsArrayBuffer方法读取文件内容为ArrayBuffer,并用SparkMD5库计算文件内容的MD5哈希值,结合文件后缀生成唯一文件名。

3. 调用后端方法获取已上传切片信息,存入数组或声明空数组作为待上传切片。

4. 根据文件大小确定切片大小和数量,可设定为100KB或动态计算,最多100份。

5. 将文件切片,生成切片信息对象并加入数组。

6. 使用FormData逐个上传切片数据至后端。

7. 当所有切片上传完成,请求后端合并切片为完整文件。

使用async/await和Promise保证顺序和状态,通过哈希值确保数据完整性,实现分片上传提升速度和稳定性。