最近有一个微信小程序的项目,要求是上传多张图片,数量不能超过3张 ,而且在php里因为上传图片被设置了只能上传2M,导致上传不成功,所以我在前端 设置一个函数,用了微信api(wx.chooseImage)获取图片,如果图片大于3张的情况弹出一个提示,不能继续上传图片了,如果图片大于2M的情况弹出一个提示,只能在上传2M以下的图片,
data:{ img:[], //设置一个数组 } add_img:function(){ var that = this, img = that.data.img; if(img.length < 3){ //如果图片数量小于3张,可以直接获取图片 wx.chooseImage({ count:1, //默认9 sizeType:['compressed'], //可以指定原图还是压缩图,默认二者都有 sourceType:['album','camera'],//可以指定来源相册还是相机,默认二者都有 success:function(res){ var tempFilesSize = res.tempFiles[0].size; //获取图片的大小,单位B if(tempFilesSize <= 2000000){ //图片小于或者等于2M时 可以执行获取图片 var tempFilePaths = res.tempFilePaths[0]; //获取图片 that.data.img.push(tempFilePaths); //添加到数组 that.setData({ img:that.data.img }) }else{ //图片大于2M,弹出一个提示框 wx.showToast({ title:'上传图片不能大于2M!', //标题 icon:'none' //图标 none不使用图标,详情看官方文档 }) } } }) }else{ //大于三张时直接弹出一个提示框 wx.showToast({ title:'上传图片不能大于3张!', icon:'none' }) } }
我用的是tempFiles里的size判断图片大小, 支持最低版本1.2.0