微信公眾號 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));
}
})
}
}