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


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整除实现代码
Nov 23 Javascript
JavaScript版DateAdd和DateDiff函数代码
Mar 01 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
Oct 17 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
Dec 10 Javascript
Js的Array数组对象详解
Feb 22 Javascript
JavaScript暂停和继续定时器的实现方法
Jul 18 Javascript
Vue.js 利用v-for中的index值实现隔行变色
Aug 01 Javascript
原生JS+HTML5实现的可调节写字板功能示例
Aug 30 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
Sep 06 Javascript
微信小程序返回箭头跳转到指定页面实例解析
Oct 08 Javascript
浅谈vue 组件中的setInterval方法和window的不同
Jul 30 Javascript
vue组件冲突之引用另一个组件出现组件不显示的问题
Apr 13 Vue.js
如何在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 冒泡排序算法的实现代码
2010/08/08 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
php输出文字乱码的解决方法
2019/10/04 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
初识JQuery 实例一(first)
2011/03/16 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
Python命名空间详解
2014/08/18 Python
理解python中生成器用法
2017/12/20 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
python pillow库的基础使用教程
2021/01/13 Python
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
弘扬职业精神演讲稿
2014/03/20 职场文书
研究生毕业自我鉴定范文
2014/03/27 职场文书
小学语文教研活动总结
2014/07/01 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
城管年度个人总结
2015/02/28 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android
python超详细实现完整学生成绩管理系统
2022/03/17 Python
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技