利用android进行多图上传时出现失败如何解决

  介绍

本篇文章为大家展示了利用android进行多图上传时出现失败如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

微信提供了文件上传的方法wx。还是来上传我们的图片

wx.chooseImage ({   成功:函数(res) {   var tempFilePaths=res.tempFilePaths   wx.uploadFile ({   url: & # 39; http://example.weixin.qq.com/upload& # 39;//仅为示例,非真实的接口地址   filePath: tempFilePaths [0],   名称:& # 39;文件# 39;   formData: {   & # 39;用户# 39;:& # 39;测试# 39;   },   成功:函数(res) {   var data=https://www.yisu.com/zixun/res.data//做某事   }   })   }   })

但是针对多图上传微信没有给出相应的方法来解决,如此我们只能消耗我们程序猿的脑细胞来解决了,最开始我使用了对循环来循环上传我的图片,恰好本人是苹果手机所以上传是没有问题的,本以为轻松解决了这个问题但是提交到测试以后坑了。测试MM说他那里提示上传失败。

于是借来测试手机打印出来错误消息

还是:失败:相同的任务正在

wx.uploadFile不能并行,因为wx.uploadFile是一个异步函数,所以循环的时候在安卓手机上会出现并行

所以上面的通过循环wx.uploadFile方法进行多图上传肯定是不能行的了,既然不能并行我们是不是可以让wx.uploadFile执行完后再执行wx。还是了。看下修改后的代码

这里为上传图片的方法,在里面作出判断上传完成以后重复调用upload_img

 var img_index=0;//上传带第几张
  var image_list1=new Array ();//上传图片
  var upload_img=函数(,file_name) {
  that.setData ({
  隐藏:假
  });
  wx.uploadFile ({
  url: & # 39; & # 39;
  filePath: file_name,
  名称:& # 39;文件# 39;
  成功:函数(res) {//此处判断是否上传成功
  var obj=JSON.parse (res.data);
  如果(obj。ret_code==1) {//上传成功以后将上传成功的图片加入数组显示出来,这样可以避免没有上传成功的图片就不显示
  var上传=new Array ();
  var image_list=new Array ();//加入返回值
  上传=that.data.upload;
  uploads.push (obj.data);//加入图片
  image_list=that.data.tempFilePaths;
  image_list.push (file_name);
  that.setData ({
  上传:上传,
  tempFilePaths: image_list
  });//上传成功一次img_index + 1,下面再次调用upload_img上传图片就可以直接传image_list1 [img_index],也就是下一张图片的链接
  img_index=img_index + 1;//这里需要作出判断图片是否上传完成,如果完成则取消缓冲框隐藏
  如果(img_index & lt;image_list1.length) {
  upload_img (& # 39; & # 39;+ image_list1 [img_index]);
  其他}{
  that.setData ({
  隐藏:真
  });
  }//刷新界面
  that.update ();
  其他}{
  that.setData ({
  隐藏:真
  });
  utils.show_toast (obj.msg);
  }
  },
  失败:函数(res) {
  that.setData ({
  隐藏:真
  });
  utils.show_toast(& # 39;加入失败& # 39;);
  }
  })
  }

选择图片方法

。长度& lt;9){
  wx.chooseImage ({
  数:9 - that.data.tempFilePaths。长度,//最多可以选择的图片张数,默认9
  sizeType:[& # 39;压缩# 39;],//原原图,压缩压缩图,默认二者都有
  sourceType:[& # 39;专辑# 39;& # 39;相机# 39;],//专辑从相册选图,相机使用相机,默认二者都有
  成功:函数(res) {//成功
  img_index=0;
  image_list1=new Array ();//将选择的图片放入要上传的数组中
  (var=0;我& lt;res.tempFilePaths.length;我+ +){
  控制台。日志(i + & # 39;; & # 39;+ res.tempFilePaths[我]);
  image_list1.push (res.tempFilePaths[我]);
  }//最开始上传第一张图片
  upload_img (& # 39; & # 39;+ image_list1 [img_index]);
  },
  失败:函数(){
  utils.show_toast(& # 39;选取失败& # 39;);
  }
  })
  其他}{
  utils.show_toast(& # 39;当前最多只能选择9张图片& # 39;);
  }

通过上面的代码就可以完成多图上传了,这样也避免了安卓手机报错的漏洞

这里封装了一个错误消息弹窗避免写重复的代码

utils.show_toast(“当前最多只能选择9张图片& # 39;)//弹窗   函数show_toast(文本){   wx.showToast ({   标题:文本,   图标:“成功# 39;   持续时间:2000   });   }

上述内容就是利用android进行多图上传时出现失败如何解决,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

利用android进行多图上传时出现失败如何解决