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


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 remove 自定义数组删除方法
Oct 20 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
Jun 24 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
Mar 04 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
Aug 28 Javascript
Javascript实现单例模式
Jan 24 Javascript
微信小程序 Page()函数详解
Oct 17 Javascript
Ztree新增角色和编辑角色回显问题的解决
Oct 25 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
Nov 07 Javascript
jquery中有哪些api jQuery主要API
Nov 20 jQuery
浅谈vue项目用到的mock数据接口的两种方式
Oct 09 Javascript
JS简单表单验证功能完整示例
Jan 26 Javascript
Vue-Element-Admin集成自己的接口实现登录跳转
Jun 23 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
BBS(php &amp; mysql)完整版(二)
2006/10/09 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
[57:50]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第二局
2016/03/05 DOTA
详解python上传文件和字符到PHP服务器
2017/11/24 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
小学毕业演讲稿
2014/04/25 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
2014年班干部工作总结
2014/11/25 职场文书
婚育证明样本
2015/06/16 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
同学联谊会邀请函
2019/06/24 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
励志语录:你若不勇敢,谁替你坚强
2019/11/08 职场文书
Nginx配置之禁止指定IP访问
2022/05/02 Servers
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python