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


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 方法实现返回多个数据的代码
Apr 30 Javascript
jQuery 剧场版 你必须知道的javascript
May 27 Javascript
Jquery 的扩展方法总结
Oct 01 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
Sep 04 Javascript
js实现上传图片预览方法
Oct 25 Javascript
jQuery点击头像上传并预览图片
Feb 23 Javascript
jQuery实现的上传图片本地预览效果简单示例
Mar 29 jQuery
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
Aug 25 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
Sep 10 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
May 29 Javascript
解决Vue调用springboot接口403跨域问题
Sep 02 Javascript
js+cavans实现图片滑块验证
Sep 29 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缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
php查询whois信息的方法
2015/06/08 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
javascript document.compatMode兼容性
2010/02/23 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
jQuery中:checked选择器用法实例
2015/01/04 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
13个PHP函数超实用
2015/10/21 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
Angularjs中使用layDate日期控件示例
2017/01/11 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
Python 时间处理datetime实例
2008/09/06 Python
Python实现栈的方法
2015/05/26 Python
Python生成随机验证码的两种方法
2015/12/22 Python
Python实现将数据库一键导出为Excel表格的实例
2016/12/30 Python
python中模块的__all__属性详解
2017/10/26 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
学校四群教育实施方案
2014/06/12 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
Pygame Time时间控制的具体使用详解
2021/11/17 Python