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


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 相关文章推荐
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
Nov 11 Javascript
判断日期是否能跨月查询的js代码
Jul 25 Javascript
Bootstrap表单组件教程详解
Apr 26 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
Jun 24 Javascript
详解jQuery选择器
Dec 21 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
Mar 13 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
JavaScript实现的简单加密解密操作示例
Jun 01 Javascript
Javascript 实现 Excel 导入生成图表功能
Oct 22 Javascript
JS控制只能输入数字并且最多允许小数点两位
Nov 24 Javascript
Javascript执行流程细节原理解析
May 14 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
2016/07/24 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
深入理解vue Render函数
2017/07/19 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
vuex实现购物车功能
2020/06/28 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
技术人员面试提纲
2013/11/28 职场文书
护士辞职信模板
2014/01/20 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python
python语言中pandas字符串分割str.split()函数
2022/08/05 Python