1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 微信上传多张图片问题(兼容ios 安卓)

微信上传多张图片问题(兼容ios 安卓)

时间:2020-06-12 17:55:08

相关推荐

微信上传多张图片问题(兼容ios 安卓)

做微信开发的时候,进行多张图片的上传,安卓会出现上传不完全的现象,是因为异步的问题,建议可以看一下js异步处理的方式。附代码

var ua = navigator.userAgent.toLowerCase();if (ua.match(/iphone/i) == "micromessenger") {var ios = true;} else {var ios = false;}wx.ready(function () { wx.chooseImage({count: upload_imgs_num, // 默认9sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success: function(res) {var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片var uploadCount = 0;var localIdLength = parseInt(localIds.length);var now_img_num = $('#img_num').val();var totlal_img_num = parseInt(now_img_num) + localIdLength;upload_imgs_num -= localIdLength;var upload = function() {wx.uploadImage({localId: '' + localIds[uploadCount],isShowProgressTips: 1,success: function(res) {serverId = res.serverId;var people_img = $("#people_img").val();if(people_img != 0) { //这里是接收上传后的serverId 后台可以通过serverId从微信拉取图片$("#people_img").val(people_img + ' ' + serverId);} else {$("#people_img").val(serverId);}if (ios || window.__wxjs_is_wkwebview) { //ios需要进一步处理var localId = localIds[uploadCount];wx.getLocalImgData({localId: localId,success: function (res) {var localData = res.localData; // localData是图片的base64数据,可以用img标签显示localData = localData.replace('jgp', 'jpeg'); //serverId可以展示成图片var img = '<li><img src="' + localData + '" alt=""><span class="del" οnclick="del(this);"></span></li>'$('#test2').before(img);},fail: function (res) {alert('图片暂时无法查看,请重试');}})} else { //安卓直接用localId展示var img = '<li><img src="' + localIds[uploadCount] + '" alt=""><span class="del" οnclick="del(this);"></span></li>'$('#test2').before(img);}if (uploadCount < localIdLength) {uploadCount++;return new Promise((resolve, reject) => { //解决异步问题setTimeout(() => {upload();resolve()}, 200)})}$("#img_num").val(uploadCount);},});}upload();}});})

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。