微信公众号 IOS多图片上传只保存一张

wx.chooseImage({
count:imgCount,
needResult: 1,
sizeType:['original', 'compressed'],
sourceType:['album', 'camera'],
success:function(res){
ShowOKbt(false);
//images.localId=res.localIds;
var imgLis="";
for(var i=0;i<res.localIds.length;i++)
{
if (window.__wxjs_is_wkwebview){
wx.getLocalImgData({ //循环调用 getLocalImgData
localId:res.localIds[i], // 图片的localID
success: function (res) {
var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
localData = localData.replace('jgp', 'jpeg');//iOS 系统里面得到的数据,类型为 image/jgp,因此需要替换一下
imgLis='<li class="weui-uploader__file" style="background-image:url('+ localData +')"></li>';
$('.weui-uploader__files').prepend($(imgLis).attr('src', localData));

},fail:function(res){
alert("res");
}
});
}
else{
imgLis='<li class="weui-uploader__file" style="background-image:url('+ res.localIds[i] +')"></li>';
$('.weui-uploader__files').prepend($(imgLis));
}
images.localId.push(res.localIds[i]);
imgCount=imgCount-1;
}

 uploadImg=function(){

for(var i=beforeimgCount;i<images.localId.length;++i)
{
wx.uploadImage({
localId:images.localId[i],
isShowProgressTips:1,
success:function(res){
       images.serverId.push(res.serverId);
      if(i==images.serverId.length-1)
      {
              ShowOKbt(true);
       }
},
fail: function (res) {
alert(JSON.stringify(res));
}
})

}

原因是因为uploadImg方法中多张图片时不进入第二次循环,后查资料查到这位前辈给的方法:https://segmentfault.com/a/1190000005358504

将异步改为同步即可

uploadImg=function(){
//for(var i=beforeimgCount;i<images.localId.length;++i)
//{
//alert(images.localId.length+"||"+images.localId[i]);
if(!images.localId.length)
{
}
else{
var localid =images.localId.pop();
wx.uploadImage({
localId:localid,
isShowProgressTips:1,
success:function(res){
images.serverId.push(res.serverId);
//alert(images.serverId.length);
if(i==images.serverId.length-1)
{
ShowOKbt(true);
}
uploadImg();
},
fail: function (res) {
alert(JSON.stringify(res));
}
})
}

}

猜你喜欢

转载自www.cnblogs.com/DoudouZhang/p/9963121.html