Skip to content

wanyue01/big-file-upload-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

大文件上传思路

场景

之前弄文件批量上传的时候,ld说以防万一让我弄多一个文件分片上传😏 恰好他知道我没啥事,但我之前没弄过哇,就硬着头皮学习学习😏 现在回过头来,文件批量上传和秒传说白了就是哈希(看看哪些分片上传了)

思路

  1. 计算整个文件的哈希值
  2. 对文件进行slice分片
  3. 然后把分片逐个上传,那服务端怎么知道分片上传完没有呢❓服务端不知道但前端是知道的呀,当Promise.all的status变为resolved时就可以发送合并的请求。
  4. 那如果说还有个需求要把进度条给显示出来又该如何应对呢?我们可以通过onprogress事件拿到e.loaded和e.total计算就可以得到每个分片的进度,把分片的进度加起来除以分片的数量就能拿到总进度了
  5. 那秒传是怎么回事,如果该文件存在,那就返回前端一个标志,那就不用再次上传浪费资源了,或者说该文件不存在但是它的个别分片存在,那就返回对应分片的哈希值,前端做一个过滤只上传需要的分片即可

调试

  • 前后端的代码我都写好放这了,后端代码在/server目录中
  • 前端 npm start启动
  • 后端 切换到对应目录再 nodemon app.js启动

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published