(含完整项目)springboot+webuploader+mysql实现大文件分片、可以关掉浏览器的断点上传、秒传
完整项目在此: https://github.com/NoonLoveSnow/bigfileupload.git 先说下为什么用数据库记录文件分片,因为文件分片可能不会存储在本机上,用数据库可以记录分片存储位置,方便获取。。合并后的文件也可以记录其md5值,作为真实文件,用户文件可以只需要新建表引用它就行了。 大文件传输主要注意的有以下几点: 大文件传输要求 : 大文件传输往往是比较耗时的,所以要求传输操作可继续的即断点续传,不能因为一些故障导致重新上传整个文件。 断点续传思路: 在浏览器传输时需要将文件分片上传,当遇到意外情况继续上传时,则之前传输完成的分片就不用传输了而传输未上传成功的分片。 如何记录上传成功的分片: 文件MD5与分片编号作为联合主键记录在数据库中。 分片上传前如何判断分片已经传输完成: 数据库中有记录,且文件长度与分片大小(chunkSize)相等 合并后文件校验: 文件大小是否不一致,每个分片应有的大小加起来与合并后的文件相比较 关于WebUploader: 网上有很多教程和例子。。 主要代码 后端: package com.noonsnow.bigfileupload.controller; import com.alibaba.fastjson.JSONObject; import com.noonsnow.bigfileupload.mapper