webuploader 秒传问题

kingho12138 2017-03-23 11:11:10
我参考网上的例子,加入计算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();
}
});
});

...全文
477 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36424895 2018-03-28
  • 打赏
  • 举报
回复
官方的文档 https://www.npmjs.com/package/js-md5 里面的example md5(''); // d41d8cd98f00b204e9800998ecf8427e md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6 md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0 // It also supports UTF-8 encoding md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07 // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer` md5([]); // d41d8cd98f00b204e9800998ecf8427e md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e // Different output md5(''); // d41d8cd98f00b204e9800998ecf8427e md5.hex(''); // d41d8cd98f00b204e9800998ecf8427e md5.array(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126] md5.digest(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126] md5.arrayBuffer(''); // ArrayBuffer md5.buffer(''); // ArrayBuffer, deprecated, This maybe confuse with Buffer in node.js. Please use arrayBuffer instead. md5.base64(''); // 1B2M2Y8AsgTpgAmY7PhCfg== 你可以在里面选一个 比如md5(“XXXX”); 把XXXX换成你想要的内容
qq_36424895 2018-03-27
  • 打赏
  • 举报
回复
就是说没progress这个属性,这个就是给文件加个md5的加密信息好区别

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧