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


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 相关文章推荐
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
Dec 08 Javascript
基于jquery的放大镜效果
May 30 Javascript
实现动画效果核心方式的js代码
Sep 27 Javascript
封装的jquery翻页滚动(示例代码)
Nov 18 Javascript
javascript记录文本框内文字个数检测文字个数变化
Oct 14 Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 Javascript
js获取checkbox值的方法
Jan 28 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
Apr 10 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
Mar 22 Javascript
vue跳转方式(打开新页面)及传参操作示例
Jan 26 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
Dec 28 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
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
详解javascript事件绑定使用方法
2016/10/20 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
pandas中DataFrame修改index、columns名的方法示例
2019/08/02 Python
Python搭建代理IP池实现接口设置与整体调度
2019/10/27 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
大学生就业自荐信
2013/10/26 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
优秀护士先进事迹
2014/05/08 职场文书
建筑安全生产责任书
2014/07/22 职场文书
局机关干部群众路线个人对照检查材料思想汇报
2014/10/05 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
python如何查找列表中元素的位置
2022/05/30 Python