大文件上传到服务器磁盘方案
前端将大文件分成多个小文件上传,后端将小文件组装回大文件:
前端分割大文件成小文件: file.slice(start, end); 分成5M的文件,就是 5 * 1024 * 1024, file.size是总大小, 分割的小文件总数totalParts = Math.ceil(file.size / 5 * 1024 * 1024),每个小文件要有自己的文件编码,按顺序编码,后端用于最后合并成大文件使用,前端用for循环批量调后端上传接口.
后端将多个小文件组装成大文件:用nio下的工具类-java.nio.channels.FileChannel 将多个小文件按顺序组装成大文件.
端点续传:后端提供已经下载的小文件编号,前端对比出还没下载的小文件编号,再次调上传接口
浙公网安备 33010602011771号