微信小程序实现多张图片上传功能


Posted in Javascript onNovember 18, 2020

本文实例为大家分享了微信小程序实现多张图片上传的具体代码,供大家参考,具体内容如下

Page({

 /**
  * 页面的初始数据
  */
 data: {
  pics: [],
  count: 9, //上传图片最大数量
  // showImgUrl: "", //路径拼接,一般上传返回的都是文件名,
  uploadImgUrl: 'https://xxx/UploadHandler.ashx', //图片的上传的路径
  detailPics: [], //上传的结果图片集合
 },
 selectimages() {
  var that = this;
  var detailPics = that.data.detailPics;
  if (detailPics.length >= that.data.count) {
   wx.showToast({
    title: '最多选择' + that.data.count + '张!',
   })
   return;
  }
  wx.chooseImage({
   count: that.data.count, // 最多可以选择的图片张数,默认9
   sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
   sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
   success: function(res) {
    var imgs = res.tempFilePaths;
    for (var i = 0; i < imgs.length; i++) {
     that.data.pics.push(imgs[i])
    }
    that.setData({
     pics: that.data.pics
    })
    console.log(that.data.pics)
     that.uploadimg({
     url: that.data.uploadImgUrl, //这里是你图片上传的接口
     path: that.data.pics, //这里是选取的图片的地址数组
    });
   },
  })
 },
 //多张图片上传
 uploadimg: function(data) {
  wx.showLoading({
   title: '上传图片中...',
   mask: true,
  })
  var that = this,
   i = data.i ? data.i : 0,
   success = data.success ? data.success : 0,
   fail = data.fail ? data.fail : 0;
  wx.uploadFile({
   url: data.url,
   filePath: data.path[i],
   name: 'fileData',
   formData: null,
   success: (resp) => {
    wx.hideLoading();
    success++;
    var str = resp.data //返回的结果,可能不同项目结果不一样
    var pic = JSON.parse(str);
    var pic_name = pic.url;
    var detailPics = that.data.detailPics;
    detailPics.push(pic_name)
    that.setData({
     detailPics: detailPics
    })
   },
   fail: (res) => {
    fail++;
    console.log('fail:' + i + "fail:" + fail);
   },
   complete: () => {
    i++;
    if (i == data.path.length) { //当图片传完时,停止调用   
     that.send()
     console.log('执行完毕');
     console.log('成功:' + success + " 失败:" + fail);
     var myEventDetail = {
      picsList: that.data.detailPics
     } // detail对象,提供给事件监听函数
     var myEventOption = {} // 触发事件的选项
     that.triggerEvent('myevent', myEventDetail, myEventOption) //结果返回调用的页面
    } else { //若图片还没有传完,则继续调用函数
     data.i = i;
     data.success = success;
     data.fail = fail;
     that.uploadimg(data); //递归,回调自己
    }
   }
  });
 },
})

效果图:

微信小程序实现多张图片上传功能

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ext读取两种结构的xml的代码
Nov 05 Javascript
在IE8上JS实现combobox支持拼音检索功能
May 23 Javascript
javascript回到顶部特效
Jul 30 Javascript
js实现表单提交后不重新刷新当前页面
Nov 30 Javascript
使用nvm管理不同版本的node与npm的方法
Oct 31 Javascript
js登录滑动验证的实现(不滑动无法登陆)
Jan 03 Javascript
浅谈如何使用webpack构建多页面应用
May 30 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
Aug 24 Javascript
JavaScript根据json生成html表格的示例代码
Oct 24 Javascript
微信小程序云开发实现云数据库读写权限
May 17 Javascript
webgl实现物体描边效果的方法介绍
Nov 27 Javascript
node中短信api实现验证码登录的示例代码
Jan 20 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 #Javascript
微信小程序实现通讯录列表展开收起
Nov 18 #Javascript
关于JavaScript中异步/等待的用法与理解
Nov 18 #Javascript
微信小程序实现多行文字滚动
Nov 18 #Javascript
微信小程序实现自定义底部导航
Nov 18 #Javascript
微信小程序绘制半圆(弧形)进度条
Nov 18 #Javascript
微信小程序实现加入购物车滑动轨迹
Nov 18 #Javascript
You might like
特转载一高手总结PHP学习资源和链接.
2006/12/05 PHP
一些常用的php函数
2006/12/06 PHP
利用PHP生成静态html页面的原理
2016/09/30 PHP
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
Vue.js 十五分钟入门图文教程
2018/09/12 Javascript
移动端图片上传旋转、压缩问题的方法
2018/10/16 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
浅谈Python 敏感词过滤的实现
2019/08/15 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
基于python3的socket聊天编程
2020/02/17 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
销售顾问的岗位职责
2013/11/13 职场文书
市场总经理岗位职责
2014/04/11 职场文书
竞聘上岗演讲稿
2014/05/16 职场文书
开展读书活动总结
2014/06/30 职场文书
社团活动总结格式
2014/08/29 职场文书
2014党员批评和自我批评思想汇报
2014/09/21 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
民事赔偿协议书
2014/11/02 职场文书
闪闪的红星观后感
2015/06/08 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书