上传控件 WebUploader 判断有没有上传成功
最近做的一个项目需要图片批量上传,研究了一下,终于找到了一个不错的上传控件Web Uploader
WebUploader是由Baidu
WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS
6+, android 4+。两套运行时,同样的调用方式,可供用户任意选用。
采用大文件分片并发上传,极大的提高了文件上传效率。
默认如果啥也不处理,只要有返回数据就认为是成功,就算返回的是错误信息,也认为是成功了。
但是,在认为成功前会派送一个事件uploadAccept,这个事件是用来询问是否上传成功的。在这个事件中你可以拿到上传的是哪个文件,以及对应的服务端返回reponse。
//如:上传成功返回 {"success" :"1"} //如:上传失败返回 {"success" :"0"}
uploader.on("uploadAccept", function( file, data){ if (
data.success=="0") { // 通过return false来告诉组件,此文件上传有错。 return false; } });
response是个对象,如果服务器返回是json格式,那么正和你意,都已经解析好了,如果不是json格式,response._raw里面可以拿到原始数据。所以,webuploader对于后端返回的数据格式是没有要求的。
使用webuploader插件上传图片时如果正确 限制上传数量
你要理解fileNumLimit的含义。fileNumLimit=总文件数-已经上传的文件数。这就意味着你fileNumLimit设置为5的话,一次上传6张是不行的,但是每次上传1张,就能突破5张的限制。原因是插件在上传完一个文件后,会把计数清零。你可以参考修改下面的代码: uploader.on( 'fileQueued', function() { count++; }); uploader.on( 'fileDequeued', function() { count--; }); uploader.on( 'uploadFinished', function() { //注销这段代码就可以了 count = 0; });上面的代码位于webuploader.js的L3809