代码逻辑:
1.选择图片 调用wx.chooseImage的接口选择图片,成功后返回: res.localIds用于上传图片使用
function selectImage(){ wx.chooseImage({ count: 3, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { syncUpload(res.localIds) } });
2.上传图片 因微信上传图片只支持一张一张上传,所以递归调用上传图片
注意:1.不能循环调用
2.第一张上传图片成功后,js定时任务等几毫秒再上传第二张,否则会上传不成功
代码:
var syncUpload = function(localIds){ var localId = localIds.pop(); wx.uploadImage({ localId: localId.toString(), // 需要上传的图片的本地ID,由chooseImage接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { //res.serverId 返回图片的服务器端ID if(localIds.length > 0){ window.setTimeout(function(){ syncUpload(localIds); },100); }else{ window.setTimeout(function(){ downloadImage(0); },100); } } }
3.上传完成后,再下载图片