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


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插件jquery倒计时插件分享
Dec 27 Javascript
Javascript写入txt和读取txt文件示例
Feb 12 Javascript
每天一篇javascript学习小结(String对象)
Nov 18 Javascript
jQuery实现内容定时切换效果完整实例
Apr 06 Javascript
如何使用jquery修改css中带有!important的样式属性
Apr 28 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
Jun 09 Javascript
Js遍历键值对形式对象或Map形式的方法
Aug 08 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
JS实现留言板功能[楼层效果展示]
Dec 27 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
Mar 09 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
Sep 02 Javascript
Vue使用CDN引用项目组件,减少项目体积的步骤
Oct 30 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源代码
2009/08/21 PHP
PHP函数实现分页含文本分页和数字分页
2014/10/23 PHP
php生成动态验证码gif图片
2015/10/19 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
javascript cookies操作集合
2010/04/12 Javascript
javascript与CSS复习(三)
2010/06/29 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
浅谈python出错时traceback的解读
2020/07/15 Python
Python 如何展开嵌套的序列
2020/08/01 Python
通过代码实例了解Python异常本质
2020/09/16 Python
Python 串口通信的实现
2020/09/29 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
工程专业应届生求职信
2014/02/19 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
Django如何与Ajax交互
2021/04/29 Python