本文主要是介绍【JS】前端分片上传大文件(支持1G以上的超大文件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 什么时候需要分片上传?
- 分片上传流程
- 获取文件专属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);
}
这篇关于【JS】前端分片上传大文件(支持1G以上的超大文件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!