webuploader 秒传问题
我参考网上的例子,加入计算md5功能,但是一直出现一个问题
up.js:10 Uncaught TypeError: Cannot read property 'progress' of undefined
对前端不怎么熟悉,请指导,谢谢
$(function() {
var fileMd5;
WebUploader.Uploader.register({
'before-send-file': 'preupload'
}, {
preupload: function(file) {
var deferred = WebUploader.Deferred();
(new WebUploader.Uploader()).md5File(file)
.progress(function(percentage){
console.log(percentage);
})
// md5值计算完成
.then(function(val) {
// 与服务安验证
$.ajax({
type:"POST",
url:"md5.action",
dataType: 'json',
data: {
md5: val
},
success: function(response) {
// 如果验证已经上传过
if (response.exist) {
owner.skipFile(file);
console.log('文件重复,已跳过');
}
// 介绍此promise, webuploader接着往下走。
deferred.resolve();
}
});
});
return deferred.promise();
}
});
var state = 'pending', uploader = WebUploader.create({pick:'#picker',
name:"file",resize:false,
swf:'/allTest/pub/swf/Uploader.swf',
server:'ajaxupload.action',
disableGlobalDnd:true,
auto:false,
chunked: true, //分片处理
chunkSize: 5 * 1024 * 1024, //每片5M
chunkRetry:false,//如果失败,则不重试
threads:1,//上传并发数。允许同时最大上传进程数。
duplicate:false,//是否可重复选择同一文件
});
uploader.on('fileQueued', function(file) {
$('#thelist').empty();
$('#thelist').append('<div id="' + file.id + '" class="fl b14b"><div class="fn">' +
file.name + '<span class="state" id="st' +
file.id + '"></span></div><div class="fd"></div><div class="clr"></div></div>');
});
uploader.on('uploadProgress', function(file, percentage) {
$('#st' + file.id).text('上传中'+Math.round(percentage * 100) + '%');
});
uploader.on('uploadSuccess', function(file, data) {
$('#st' + file.id).text('已上传');//在上传文件列表中的文件名字后面所加入的状态信息
$("#fdb"+ file.id).remove();
if(data.code == 0) {
$("#ae").text("文件上传成功!")
} else {
$("#ae").text(data.msg);
}
});
uploader.on('uploadError', function(file) {
$('#st' + file.id).text('上传出错');
});
uploader.on('all', function(type) {
if(type==='startUpload') {
state = 'uploading';
$('#upbtn1').val('暂停上传');
} else if(type==='stopUpload') {
state = 'paused';
$('#upbtn1').val('开始上传1');
} else if(type==='uploadFinished') {
state = 'done';
$('#upbtn1').val('开始上传2');
}
});
$('#upbtn1').on('click', function() {
if(state==='uploading') {
uploader.stop(true);
} else {
uploader.upload();
}
});
});