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


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 相关文章推荐
Textarea根据内容自适应高度
Oct 28 Javascript
用jquery等比例控制图片宽高的具体实现
Jan 28 Javascript
将json对象转换为字符串的方法
Feb 20 Javascript
JavaScript中join()方法的使用简介
Jun 09 Javascript
Js+php实现异步拖拽上传文件
Jun 23 Javascript
JS获取下拉框显示值和判断单选按钮的方法
Jul 09 Javascript
浅析JavaScript中break、continue和return的区别
Nov 30 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
Dec 17 Javascript
ES6生成器用法实例分析
Apr 10 Javascript
Bootstrap栅格系统的使用详解
Oct 30 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
Sep 22 Javascript
js实现简单商品筛选功能
Feb 02 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 Undefined index和Undefined variable的解决方法
2008/03/27 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
PHP对象实例化单例方法
2017/01/19 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
javascript编写简易计算器
2017/05/06 Javascript
详解关于element级联选择器数据回显问题
2019/02/20 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
python中正则表达式的使用详解
2014/10/17 Python
python访问系统环境变量的方法
2015/04/29 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
python3代码中实现加法重载的实例
2020/12/03 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
英国标准协会商店:BSI Shop
2019/02/25 全球购物
蒂娜商店:Tiina the Store
2019/12/07 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
机械设计及其自动化专业推荐信
2013/10/31 职场文书
党员公开承诺践诺书
2014/03/25 职场文书
大学生应聘求职信
2014/05/26 职场文书
Nginx如何配置根据路径转发详解
2022/07/23 Servers