广告位联系
返回顶部
分享到

微信小程序实现上传多个文件超过10个的方法

微信小程序 来源:互联网搜集 作者:网络 发布时间:2020-02-04 10:12:16 人浏览
摘要

小程序笔记】wx.uploadFile(OBJECT) 先说说遇到的问题: 小程序可通过wx.uploadFile(OBJECT)接口上传手机文件至服务器,但是在文档中关于请求中有这么一段说明:request、uploadFile、downloadFile 的最大并发限制是 10 个,意思就是这三个接口请求并发数不能

小程序笔记】wx.uploadFile(OBJECT)

先说说遇到的问题:

小程序可通过wx.uploadFile(OBJECT)接口上传手机文件至服务器,但是在文档中关于请求中有这么一段说明:request、uploadFile、downloadFile 的最大并发限制是 10 个,意思就是这三个接口请求并发数不能超过10个,否则报以下错误

uploadFile:fail exceed max upload connection count 10

但是业务场景总会需要堆砌一些复杂的功能,比如需要上传多张照片到服务器啊,需要一张一张的上传,等等。既然不能一下子上传多个文件,那就用最简单的方法完成复杂的功能即可,先上传完一张再上传下一张,哈哈

具体看看主要两个方法:
 

/**
 * 上传照片//选择图片时限制9张,如需超过9张,同理亦可参照此方法上传多张照片
 */
uploadImg:function(){
 var that = this;
 wx.chooseImage({
  count: 9,
   sizeType: ['original', 'compressed'],
   sourceType: ['album', 'camera'],
   success: function(res){
    var successUp = 0; //成功
    var failUp = 0; //失败
    var length = res.tempFilePaths.length; //总数
    var count = 0; //第几张
    that.uploadOneByOne(res.tempFilePaths,successUp,failUp,count,length);
   },  
 });
},
/**
 * 采用递归的方式上传
 */
 uploadOneByOne(imgPaths,successUp, failUp, count, length){
 var that = this;
 wx.showLoading({
  title: '正在上传第'+count+'张',
 })
 wx.uploadFile({
  url: 'https://example.weixin.qq.com/upload', //仅为示例,非真实的接口地址
  filePath: imgPaths[count],
  name: count,//示例,使用顺序给文件命名
  success:function(e){
  successUp++;//成功+1
  },
  fail:function(e){
  failUp++;//失败+1
  },
  complete:function(e){
  count++;//下一张
  if(count == length){
   //上传完毕,作一下提示
   console.log('上传成功' + successUp + ',' + '失败' + failUp);
   wx.showToast({
   title: '上传成功' + successUp,
   icon: 'success',
   duration: 2000
   })
  }else{
   //递归调用,上传下一张
   that.uploadOneByOne(imgPaths, successUp, failUp, count, length);
   console.log('正在上传第' + count + '张');
  }
  }
 })
 },

注释比较详细,可以看到方法比较简单,示例只做9张图片的上传,可使用for循环调用上传文件的接口,但是在某些特定的场景下,需要考虑可能需要上传多张的需求,可使用此方法一张一张的上传,如果需要控制前一张上传完才能进行下一张的上传,此方法亦非常适用,可以做一些成功和失败的处理,看场景需要而定

版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/aini2464/article/details/79668511
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计