1、去年做的,当时除了性能很差的手机偶尔闪退,其他都能顺利上传。
2、最近发现的问题,选单个图片就能顺利上传,选两个就卡在上传中没反应,选三张图片以上就闪退,出现微信开机那个地球,然后返回到当前页面,上传失败。
3、手头几个手机都会,包括6G内存的手机。
4、这段时间没有改动过代码,就升级过微信版本。
全部代码如下
wx.config({
debug: false,
appId: 'wx************', timestamp:'************',nonceStr: '************', signature: '************',
jsApiList: ['chooseImage','uploadImage']
});
wx.ready(function () {
var images = {
localId: [],
serverId: []
};
document.querySelector('#xnpic').onclick = function () {
wx.chooseImage({
count: 9, // 默认9
sizeType: ['compressed'], //原图'original', 压缩图'compressed'
success: function (res) {
images.localId = res.localIds;
if (res.localIds.length > 0) {
for(var i=0,len=res.localIds.length;i<len;i++){
wx.uploadImage({
localId: res.localIds[i], // 需要上传的图片的本地ID
isShowProgressTips: 1, // 显示进度提示
success: function (res) {
//alert('已上传:' + i + '/' + length);
images.serverId.push(res.serverId);
$.post("*******", //转存图片
{mediaid:""+res.serverId+"",s:"npic"},
function(data){
{
switch (data)
{
case "err1":
alert("上传失败,没有权限");
break;
case "err2":
alert("上传失败,文件不正确。");
break;
default:
document.getElementById('npic').innerHTML+='<div class="picxx"><img src="'+data+'" width="150" height="112"><br /><a onclick="javascript:cls(this);">删除</a>|<a onclick="javascript:fmainx(this);">置顶</a></div>';
break;
}
}
});
}
});
}
}
}});
};
});
路过看到,你代码是用 for 来进行 uploadImage,相当于一下子多次上传图片;
建议在一次上传完毕之后,再上传下一张图片