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


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 28 Javascript
分享27个jQuery 表单插件集合推荐
Apr 25 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
Jun 12 Javascript
jQuery中animate()方法用法实例
Dec 24 Javascript
javascript实现很浪漫的气泡冒出特效
Sep 05 Javascript
拥Bootstrap入怀——导航栏篇
May 30 Javascript
jQuery webuploader分片上传大文件
Nov 07 Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
Nov 17 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
Sep 20 Javascript
详解vue微信网页授权最终解决方案
Jun 16 Javascript
node.JS二进制操作模块buffer对象使用方法详解
Feb 06 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
Sep 04 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获取远程图片并保存到本地的方法
2015/05/12 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
php实现图片压缩处理
2020/09/09 PHP
jQuery textarea的长度进行验证
2009/05/06 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
Nodejs 获取时间加手机标识的32位标识实现代码
2017/03/07 NodeJs
vue.js组件之间传递数据的方法
2017/07/10 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
详解vue.js之props传递参数
2017/12/12 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
深入理解Vue keep-alive及实践总结
2019/08/21 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
JS+Canvas实现五子棋游戏
2020/08/26 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
Win系统PyQt5安装和使用教程
2019/12/25 Python
python如何处理程序无法打开
2020/06/16 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
Python创建临时文件和文件夹
2020/08/05 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
小学六一主持词开场白
2015/05/28 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python