切片上传一般用在大文件上传,防止上传过程中网络断开重头开始,但在HTTP协议里面并没有,所以实现要使用自定义一下方法。
网上很多资料,大概实现的原理:
- 客户端将大文件切为X份,每份切片都做md5校验。
- 按顺序一次上传一片,同时前后端做md5校验。
- 切片上传过程中可以暂停,并且在发生网络异常时,只是某切片上传失败。
- 上传所有切片之后,请求合并文件,后端将所有切片合并,前后端再次对大文件进行md5校验。
js本地文件切片
1 | let blob = file.slice(start, end,file.type); |
blob
可以直接放入到 FormData
中。