之前弄文件批量上传的时候,ld说以防万一让我弄多一个文件分片上传😏 恰好他知道我没啥事,但我之前没弄过哇,就硬着头皮学习学习😏 现在回过头来,文件批量上传和秒传说白了就是哈希(看看哪些分片上传了)
- 计算整个文件的哈希值
- 对文件进行slice分片
- 然后把分片逐个上传,那服务端怎么知道分片上传完没有呢❓服务端不知道但前端是知道的呀,当Promise.all的status变为resolved时就可以发送合并的请求。
- 那如果说还有个需求要把进度条给显示出来又该如何应对呢?我们可以通过onprogress事件拿到e.loaded和e.total计算就可以得到每个分片的进度,把分片的进度加起来除以分片的数量就能拿到总进度了
- 那秒传是怎么回事,如果该文件存在,那就返回前端一个标志,那就不用再次上传浪费资源了,或者说该文件不存在但是它的个别分片存在,那就返回对应分片的哈希值,前端做一个过滤只上传需要的分片即可
- 前后端的代码我都写好放这了,后端代码在/server目录中
- 前端 npm start启动
- 后端 切换到对应目录再 nodemon app.js启动