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

 更新时间:2020年11月18日 10:19:03   作者:Archer_yy  
这篇文章主要为大家详细介绍了微信小程序实现多张图片上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了微信小程序实现多张图片上传的具体代码,供大家参考,具体内容如下

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); //递归,回调自己
    }
   }
  });
 },
})

效果图:

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 微信小程序之ES6与事项助手的功能实现

    微信小程序之ES6与事项助手的功能实现

    本篇文章主要介绍了微信小程序之ES6与事项助手的功能实现,具有一定的参考价值,有兴趣的同学可以了解一下。
    2016-11-11
  • 利用ES6实现单例模式及其应用详解

    利用ES6实现单例模式及其应用详解

    单例是在程序设计非常基础的东西,这篇文章主要给大家介绍了关于利用ES6实现单例模式及其应用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-12-12
  • uniapp App端使用高德地图超详细步骤

    uniapp App端使用高德地图超详细步骤

    地图现在已经渗入到生活的方方面面,给生活带了极大的编译,那么我们如何才能在项目中引入地图呢?这篇文章主要给大家介绍了关于uniapp App端使用高德地图超详细步骤的相关资料,需要的朋友可以参考下
    2023-11-11
  • js实现仿Discuz文本框弹出层效果

    js实现仿Discuz文本框弹出层效果

    这篇文章主要介绍了js实现仿Discuz文本框弹出层效果的方法,可实现点击文本框弹出窗口选择数据的效果,涉及鼠标事件及页面自定义弹出窗口的相关操作技巧,需要的朋友可以参考下
    2015-08-08
  • TypeScript 背后的结构化类型系统原理详解

    TypeScript 背后的结构化类型系统原理详解

    这篇文章主要为大家介绍了TypeScript 背后的结构化类型系统原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 微信小程序使用uni-app和springboot实现一键登录功能(JWT鉴权)

    微信小程序使用uni-app和springboot实现一键登录功能(JWT鉴权)

    微信一键登录是指用户在使用小程序时,可以通过微信账号进行快速登录,而无需额外的注册和密码设置,这篇文章主要给大家介绍了关于微信小程序使用uni-app和springboot实现一键登录功能的相关资料,需要的朋友可以参考下
    2023-11-11
  • HTML+CSS+JavaScript创建一个简单的井字游戏

    HTML+CSS+JavaScript创建一个简单的井字游戏

    使用javascript创建游戏是最有趣的学习方式。它会让你保持动力,这对于学习 Web 开发等复杂技能至关重要。本文将使用HTML、CSS和 Javascript创建一个井字游戏。感兴趣的童鞋可以关注一下
    2021-11-11
  • JS面向对象的程序设计相关知识小结

    JS面向对象的程序设计相关知识小结

    这篇文章主要介绍了JS面向对象的程序设计,现在很多代码都是基于面向对象实现,需要的朋友可以参考下
    2018-05-05
  • JS实现图片平面旋转的方法

    JS实现图片平面旋转的方法

    这篇文章主要介绍了JS实现图片平面旋转的方法,涉及JavaScript操作页面元素样式动态变换的相关技巧,需要的朋友可以参考下
    2016-03-03
  • js类的静态属性和实例属性的理解

    js类的静态属性和实例属性的理解

    看到论坛的帖子,然后对静态属性和实例属性有个新的认识,做下记录。
    2009-10-10

最新评论