在之前大文件的上传我都是通过FilderReader获取文件的base64然后转为Blob在一段一段截取上传,但是这个方法有个弊端就是很大的文件的时候获取文件的base64会使整个浏览器崩溃卡死,后面我去看了一下百度网盘的上传原理
我们可以看到百度是通过类似表单提交的方式上传文件的,这样子似乎不需要把文件转化为base64减少了浏览器的开销。那个让我们来动手做一个大文件上传吧
这里用input标签来获取需要上传的文件
获取到file对象以后我们就可以得到
这样一个对象里面就是文件的大小名字等信息
接下来我们可以通过size判断文件的大小,对大文件进行切割上传处理
大文件上传的话我们需要告诉后端切割的总公块数和当前是那一块这样子后端可以对数据进行处理
这里我们通过step控制切割的大小,star和end表示该次上传的文件开始个结束的数据位置,totalindex是总共切割的个数,index是当前上传的个数
以上就是我的大文件上传的方法~~~~
快过年了,在这里提前祝大家新年快乐!!!!!!!!!!!!
原文地址:https://www.cnblogs.com/july-lin/p/12206973.html
时间: 2024-09-30 19:57:58