WebUploader百度WebUploader简单使用

35 篇文章 1 订阅
9 篇文章 0 订阅

今天在做一个图片上传功能,整个应用所有的图片上传都需要压缩。唉,工作量大。就想弄个插件来压缩上传

先贴代码:

//百度WebUploader
/***
 * domId 要绑定的元素,id、class等选择器皆可,默认id为upload_file的div元素
 * size大小,要限制图片大小的M数,不传默认50M
 * isMultiple 是否可以为多选;true:多选,false:单选。不传默认多选
 * url 上传接口,传参user的话图片保存在user文件目录,不传默认/compressUploadImages.do保存在images目录下
 */
var uploader;
function initWebUploader(domId,size,isMultiple,url){
	if(!domId){
		domId="#upload_file";
	}
	if(!size){
		size=50;
	}
	if(isMultiple==null||isMultiple==''){
		isMultiple=true;
	}
	if(url=='user'){
		url="/compressUploadUser.do";
	}else {
		url="/compressUploadImages.do";
    }
	uploader = WebUploader.create({  
		auto: true,  
		swf: domain+'/js/common/Uploader.swf',  
		server:url,  
		pick:{id:domId, multiple:isMultiple}, //multiple为true为可多选图片(多张),false为单张
		duplicate:true,//允许重复再次上传
		accept: {  //上传文件的格式
			title: 'Images',  
			extensions: 'gif,jpg,jpeg,bmp,png',
			mimeTypes: 'image/*'  
		},  
		prepareNextFile:true,//如果是多文件,能节约耗时,避免等待
		fileSingleSizeLimit:size*1024*1024,
		method:'POST',
		resize:"jpeg",//false则不压缩,jpeg默认在上传前会压缩一次
		threads:1
	}); 
	uploader.on("error",function (type){
		if (type=="Q_TYPE_DENIED"){
			alertMsg("请上传gif,jpg,jpeg,bmp,png格式图片");
		}else if(type=="F_EXCEED_SIZE"){
			alertMsg("单张图片文件大小不能超过"+size+"M");
		}
		return;
	});
	$(domId).click(function(){  
		$(domId).find("input").click(function(event){
			event.stopPropagation(); 
		});
		$(this).find('input').click();  
	});
}

上面的是初始化公共的,写了个简单的,自己并不擅长前端。开始想用input的,始终不行,最后无奈还是要按官方的来用的一个div容器,然后他自己生成按钮。因为我们有自己的样式等,不能用它的按钮,最后总算解决

初始化之后,页面会生成2个div,第二个div里面会有input,绑定元素(如id为upload_file)的div里面的元素会纳入到它自己生成的第一个div里面去







然后定义的id却变成了span。有自己的id,如果同意id的容器初始化多次,里面会有很多div和input,并且是成子父级的

下面就是我踩的坑了。


在我调用了initWebUploader初始化之后,uploadSuccess函数官方的例子里面参数只有一个file,看了一个小时的官方文档也没有返回数据的东西。然后感觉后面应该是会有一个参数用来处理返回数据的。就实验了一下,还真是。但是官方例子里面却没写上去。

上传这里很多都是需要上传多个文件的,它上传是一个一个传的。上传了一个之后再请求上传,我基本都要限制上传图片数量的,能上传照片补齐剩下的张数又要限制多余的不能上传。官方可以配置fileNumLimit来处理上传张数限制,但是还是会上传前面的照片,比如限制5张,选了6张,还是会上传前5张。因为要处理自己的业务逻辑,所以自己判断写了。满足8张就清空队列不上传了。


做个小计,方便以后使用再次查看。如有错误之处,还望指正!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值