原理:前端通过js读取文件,并将大文件按照指定大小拆分成多个分片,并且计算每个分片的MD5值。前端将每个分片分别上传到后端,后端在接收到文件之后验证当前分片的MD5值是否与上传的MD5一致,待所有分片上传完成之后后端将多个分片合并成一个大文件,并校验该文件的MD5值是否与上传时传入的MD5值一致;
首先是交互的控制器支持文件分片上传,查询当前已经上传的分片信息,取消文件上传
上传文件分片参数接收如果按照分片方式上传文件需要指定当前大文件的MD5、分片MD5、分片内容、分片大小、当前文件名称、文件总大小等信息;另外对于每个文件前端都需要生成一个唯一编码用于确定当前上传的分片属于统一文件。
至于代码中的 BaseParam 类,只是定义了一些验证的分组,类似以下代码:
大文件分片上传服务类实现也是定义了三个接口,分片上传、查询当前已上传的分片、取消文件上传
服务实现类:
文件分片上传定义公共服务类接口 文件分片上传文件操作接口实现类这里风两种实现,1:本地文件上传,2:oss对象存储方式分片上传
OSS阿里云对象存储分片上传实现 京东云对象存储实现 腾讯云对象存储分片上传 分片上传前端代码实现参考资料:
项目参考地址:https://gitee.com/donghuangtaiyi/file-uploader
到此这篇关于Java超详细大文件分片上传代码的文章就介绍到这了,更多相关Java大文件上传内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!