微信jssdk多图上传
微信官方文档uploadImage函数一次只能上传一张图片,但实际运用中有不少多图上传的需求
当选择多张图片时若直接循环多次调用,只有最后一张能上传成功,因为uploadImage只有在上次一执行成功或者失败以后才能再次调用,因此把该函数稍作修改即可
//选择图片
function choose(num){
wx.chooseImage({
count: num, // 默认9
sizeType: ['compressed'],
success: function (res) {
var localIds = res.localIds; // localIds为数组
upload(localIds)
}
});
};
//上传图片
function upload(localIds,image){
var localId = localIds.pop(); //从数组中取一个localId上传,并从数组中删掉该元素
wx.uploadImage({
localId: localId, // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (res) {
if(res.errMsg == 'uploadImage:ok'){
var serverId = res.serverId; // 返回图片的服务器端ID
console.log(serverId);
if(localIds.length > 0){
upload(localIds); //若存放localId的数组不为空,继续上传
}
}
}
});
}
至此,该问题完美解决