目录
- 什么时候需要分片上传?
- 分片上传流程
- 获取文件专属MD5码
什么时候需要分片上传?
如果将大文件一次性上传,耗时会非常长,甚至可能传输失败,那么我们怎么解决这个问题呢?既然大文件上传不适合一次性上传,那么我们可以尝试将文件分片散上传。
这样的技术就叫做分片上传。分片上传就是将大文件分成一个个小文件(切片),将切片进行上传,等到后端接收到所有切片,再将切片合并成大文件。通过将大文件拆分成多个小文件进行上传,确实就是解决了大文件上传的问题。因为请求时可以并发执行的,这样的话每个请求时间就会缩短,如果某个请求发送失败,也不需要全部重新发送。
分片上传流程
获取文件专属MD5码
hash = (chunks) => {return new Promise((resolve) => {const spark = new sparkMD5();// 递归函数function _read(i){if(i >= chunks.length)resolve(spark.end());return;// 读取完成
const blob = chunks[i];const reader = new FileReader();reader.onload=e=>{// 读取到的字节数组const bytes =e.target.result;spark.append(bytes);read(i + 1);
reader.readAsArrayBuffer(blob);
read(e);
}