webuploader大文件分片并发上传
一、引入资源
使用Web Uploader文件上传需要引入三种资源:JS, CSS。需前往官网自行下载!
地址:http://fex.baidu.com/webuploader/
图1:引入 Web Uploader资源
二、HTML及css部分
1、在HTML或jsp页面放置文件信息所需的容器、选择按钮、上传按钮和上传进度条四个部分
1 | <div id="uploader" class="wu-example"> |
三、js部分
3.1、初始化WebUploader
1 | <script type="text/javascript"> |
3.2、监听分块上传过程中的时间点
var md5File; //定义分片上传加密的文件变量
1 | //监听分块上传过程中的时间点 |
3.2.1 上传文件查重
1 | //时间点1:所有分块进行上传之前调用此函数 ,检查文件存不存在 |
3.2.2 判断分片是否存在
1 | //时间点2:如果有分块上传,则每个分块上传之前调用此函数 ,判断分块存不存在 |
3.2.3 合成分片
1 | //时间点3:分片上传完成后,通知后台合成分片 |
3.2.4 webuploader监听事件
1 | //上传添加参数 |
四、js三个时间点的分片所对应的controller方法
4.1 所需成员变量
bll为上传对象的service层可修改
如:上传课程视频 对应 video表的service层 videoBll及打印日志所需对象
1 | @Resource(name = "bEnclosure") |
4.2 时间点1:检查文件存在与否
1 | /** |
4.3 时间点2:检查分片存在与否
1 | /** |
4.4 时间点2:合成分片
1 | /** |
4.5文件传输
这里根据文件**md5**值生成目录,并将分片文件放到该目录下
1 | /** |
4.6递归删除目录下的所有文件及子目录下所有文件
1 | private boolean deleteDir(File dir) { |