作过微信开发的都知道,在部分android机型里微信不支持网页上传图片的,这是因为这些机型的文件上传存在内存泄漏,会致使微信闪退,因此微信内置浏览器将文件上传屏蔽。这就致使这些机型的用户在使用微信浏览器访问某些须要上传图片的网页时功能不正常。android
前不久微信公开了一些接口,其中有一个uploadImage接口用于上传图片,通常和chooseImage接口配合使用。先调用chooseImage接口让用户选择一张或者多张图片,用户选择完毕后微信会返回被选中图片的id,再把图片id传给uploadImage接口上传图片。浏览器
因为uploadImage一次只能上传一张图片,所以当用户选择多张图片时,须要屡次调用uploadImage接口来上传图片。服务器
可是在实践的过程当中发现,无论用户选中多少张图片,只有第一张可以上传成功。微信
查看了一下微信的文档,在常见问题中找到了相关的描述微信开发
uploadImage怎么传多图(目前只支持一次上传一张,多张图片需等前一张图片上传以后再调用该接口)server
也就是说,若是想要上传多张图片,须要将以前并行上传改为串行。接口
代码以下:图片
$('#filePicker').on('click', function () { wx.chooseImage({ success: function (res) { var localIds = res.localIds; syncUpload(localIds); } }); }); var syncUpload = function(localIds){ var localId = localIds.pop(); wx.uploadImage({ localId: localId, isShowProgressTips: 1, success: function (res) { var serverId = res.serverId; // 返回图片的服务器端ID //其余对serverId作处理的代码 if(localIds.length > 0){ syncUpload(localIds); } } }); };