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


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 相关文章推荐
javascript instanceof 与typeof使用说明
Jan 11 Javascript
jQuery多项选项卡的实现思路附样式及代码
Jun 03 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
Jun 13 Javascript
jQuery获取this当前对象子元素对象的方法
Nov 29 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
Jan 14 Javascript
vue2的todolist入门小项目的详细解析
May 11 Javascript
JS实现移动端判断上拉和下滑功能
Aug 07 Javascript
深入浅出es6模板字符串
Aug 26 Javascript
thinkjs 文件上传功能实例代码
Nov 08 Javascript
angularjs 缓存的使用详解
Mar 19 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
Apr 23 Javascript
详细介绍Next.js脚手架完整搭建封装
Apr 26 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
php在线打包程序源码
2008/07/27 PHP
PHP array_push 数组函数
2009/12/26 PHP
php 删除cookie方法详解
2014/12/01 PHP
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
javascript学习之json入门
2016/12/22 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
2019/05/04 Python
python3多线程知识点总结
2019/09/26 Python
Python PyQt5整理介绍
2020/04/01 Python
使用openCV去除文字中乱入的线条实例
2020/06/02 Python
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
HTML5 Canvas的性能提高技巧经验分享
2013/07/02 HTML / CSS
娱乐地球:Entertainment Earth
2020/01/08 全球购物
顶撞领导检讨书
2014/01/29 职场文书
预备党员综合考察材料
2014/05/31 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
教师考核评语大全
2014/12/31 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
2015年前台接待工作总结
2015/05/04 职场文书