wx.uploadImage多图上传的坑

尤里2号   ·  9月前   ·   后端语言

wx.uploadImage是微信网页sdk的一个接口,用于把本地图片上传到微信服务器,并返回id供后续下载。

调用形式是这样的

上传图片接口

wx.uploadImage({
localId: '', // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (res) {
var serverId = res.serverId; // 返回图片的服务器端ID
}
});


最近客户反馈明明选择了多图,最后上传成功的只有一张图。

用户选择多图后,多次调用wx.uploadImage异步方法,看起来毫无问题。

然而在官方文档的附录有这么一句话:

9.uploadImage怎么传多图(目前只支持一次上传一张,多张图片需等前一张图片上传之后再调用该接口)

你大爷哦,不支持异步为什么不做成同步的,而且这么明显的坑为什么不写在使用说明下面,非要我踩坑了去网上到处找么?


解决方案:

必须保证图片是一张张传的,即下一次上传是在上一次的success回调中,如:

function syncUpload(localIds){
if (!localIds.length) {
   $(alert('上传成功!');} else {
   var localId = localIds.pop();    
   wx.uploadImage({
       localId: localId,        
       success: function(res) {      
           console.log(res.serverId)
           syncUpload(localIds);        
       }
   });}
}


1 条回复   |  直到 9月前 | 595 次浏览
登录后才可发表内容