介绍
本篇文章为大家展示了利用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进行多图上传时出现失败如何解决,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。