upload.html
/*
*
* */
var $list = $('#fileList'); // 页面展示的文件列表
var md5File;
//监听分块上传过程中的时间点
WebUploader.Uploader.register({
"before-send-file":"beforeSendFile", // 整个文件上传前
"before-send":"beforeSend", // 每个分片上传前
"after-send-file": "afterSendFile" // 分片上传完毕
},{
//时间点1:所有分块进行上传之前调用此函数 ,检查文件存不存在
beforeSendFile:function(file){
var deferred = WebUploader.Deferred();
md5File = hex_md5(file.name+file.size);//根据文件名称,大小确定文件唯一标记,这种方式不赞成使用
$.ajax({
type:"POST",
url:"/files/checkFile",
data:{
md5File: md5File, //文件唯一标记
},
async: false, // 同步
dataType:"json",
success:function(response){
if(response){ //文件存在,跳过 ,提示文件存在
$('#' + file.id).find('p.state').text("file exist");
}else{
deferred.resolve(); //文件不存在或不完整,发送该文件
}
}
} , function (jqXHR, textStatus, errorThrown) { //任何形式的验证失败,都触发重新上传
deferred.resolve();
} );
return deferred.promise();
},
//时间点2:如果有分块上传,则每个分块上传之前调用此函数 ,判断分块存不存在
beforeSend:function(block){
var deferred = WebUploader.Deferred();
$.ajax({
type:"POST",
url:"/files/checkChunk",
data:{
md5File: md5File, //文件唯一标记
chunk:bl