大文件上传

Posted 饮尽杯中月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大文件上传相关的知识,希望对你有一定的参考价值。

大文件上传和断点续传

在这里插入图片描述
在这里插入图片描述
步骤:

  1. 通过input得到文件file
  2. 通过文件内容生成md5码
  3. 给服务端发起检验,检测该文件是否被上传过(有缓存),如果有就直接返回,无需重新上传
  4. 如果文件没有上传过,就继续文件切片,如果上传过一部分,就将已上传切片chunk的md5做一个返回,以便做断点上传,进行文件切片
  5. 通过文件切片,生成多个chunk,每个chunk都有单独的md5码,获取已经上传切片chunk的md5码,进行过滤,将已经上传好的,就不再进行上传,只上传没有上传过的,即是对文件切片做一个整合
  6. 开启前端上传线程
  7. 在文件上传的时候,每个切片会调用upload的接口,将切片上传到服务端
  8. 服务端会将切片文件转移到以文件md5码命名的资源目录中去
  9. 当前端上传结束之后,前端发起一个merge请求,告诉后端md码切片的文件已经上传完了,现在需要做一个合并
  10. 服务端将所有的内容做一个拼接合并(合并顺序为前端在文件切片步骤时给每个chunk的脚标定flag)
  11. 合并之后会得到一个完整的文件,放入资源目录,将所有切片和以md5命名的文件夹删除,做一个完整的文件导出

以上是关于大文件上传的主要内容,如果未能解决你的问题,请参考以下文章

前端大文件上传解决方案支持分片断点上传

App上传大视频的一种解决方案

js+前端分片上传大文件

大文件秒上传的原理是啥?

局域网 大文件分片上传处理

PHP 大文件上传解决方案(500M以上)