文件上传方法
1、form、input
2、formData(推荐)
3、fileReader
文件上传遇到问题
1、大文件时,上传时间久,容易卡顿
2、网络原因导致失败,失败后需要从头开始
解决方案:
1、切片上传
2、断点续传
3、秒传
切片上传:
Blob对象的slice方法
chunkSize = 1024*5;(每片大小
文件切片上传完成,文件合并
1、前端发送完切片,发送切片请求,告诉后端可以合并
2、后端读取切片数,自动检测文件是否上传完成(推荐)
3、创建一个和原文件大小相同的文件……
断点续传:
可以随时中断,中断时只会影响当前切片数,上传前询问后端已上传切片数
秒传:
关键在于技术的唯一标识,将整个文件的码作为hash标识
文件合并时创建方法并记录
上传文件前询问是否已经上传过
额外:
chrome浏览器默认并发数只有6个,限制前端请求个数
js异步并发控制
Promise.resolve()
Promise.race()执行最快的