微信小程序之批量上传并压缩图片的实例代码


Posted in Javascript onJuly 05, 2018

具体内容如下所示:

首先,要在.wxml文件里面创建一个canvas,作用是承载压缩的图片,以供上传的时候获取

这个canvas不能隐藏,否则没效果,可以将其移至屏幕外。

<canvas canvas-id='attendCanvasId' class='myCanvas'></canvas>

然后呢,就是.js文件里面的方法了

// 点击加_压缩
 takePhoto: function () {
  var that = this;
  let imgViewList = that.data.imgViewList; //这个是用来承载页面循环展示图片的
   //拍照、从相册选择上传
   wx.chooseImage({
    count: 4,  //这个是上传的最大数量,默认为9
    sizeType: ['compressed'],  //这个可以理解为上传的图片质量类型(官方给的),虽然没什么卵用,要不然还要我们自己写压缩做什么
    sourceType: ['album', 'camera'],  //这个是图片来源,相册或者相机
    success: function (res) {
     var tempFilePaths = res.tempFilePaths  //这个是选择后返回的图片列表
     that.getCanvasImg(0, 0, tempFilePaths);  //进行压缩
    } 
   });
 },
 //压缩并获取图片,这里用了递归的方法来解决canvas的draw方法延时的问题
 getCanvasImg: function (index,failNum, tempFilePaths){
  var that = this;
  if (index < tempFilePaths.length){
   const ctx = wx.createCanvasContext('attendCanvasId');
   ctx.drawImage(tempFilePaths[index], 0, 0, 300, 150);
   ctx.draw(true, function () {
    index = index + 1;//上传成功的数量,上传成功则加1
    wx.canvasToTempFilePath({
     canvasId: 'attendCanvasId',
     success: function success(res) {
      that.uploadCanvasImg(res.tempFilePath);
      that.getCanvasImg(index,failNum,tempFilePaths);
     }, fail: function (e) {
      failNum += 1;//失败数量,可以用来提示用户
      that.getCanvasImg(inedx,failNum,tempFilePaths);
     }
    });
   });
  }
 },
 //上传图片
 uploadCanvasImg: function (canvasImg){
  var that = this;
  let imgViewList = that.data.imgViewList;
  var tempImg = canvasImg;
  wx.uploadFile({
   url: app.d.fileServer,//文件服务器的地址
   filePath: tempImg,
   formData: {
    paramPath: "gift"
   },
   name: 'file',
   success: function (res) {
    var json2map = JSON.parse(res.data);
    imgViewList.push(app.d.imageUrlFix + json2map[0].fileUrl);
    that.setData({
     imgViewList: imgViewList,
    })
   }
  })
 },

总结

以上所述是小编给大家介绍的微信小程序之批量上传并压缩图片的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery弹出层插件简化版代码下载
Oct 16 Javascript
JS的replace方法详细介绍
Nov 09 Javascript
javascript表单验证 - Parsley.js使用和配置
Jan 25 Javascript
jquery获取元素值的方法(常见的表单元素)
Nov 15 Javascript
AngularJS Module方法详解
Dec 08 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
Jul 04 Javascript
Javascript计算二维数组重复值示例代码
Dec 18 Javascript
一次围绕setTimeout的前端面试经验分享
Jun 15 Javascript
echart简介_动力节点Java学院整理
Aug 11 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
Mar 09 Javascript
基于express中路由规则及获取请求参数的方法
Mar 12 Javascript
ligerUI的ligerDialog关闭刷新的方法
Sep 27 Javascript
JavaScript控制浏览器全屏显示简单示例
Jul 05 #Javascript
基于jQuery使用Ajax动态执行模糊查询功能
Jul 05 #jQuery
JavaScript递归函数解“汉诺塔”算法代码解析
Jul 05 #Javascript
微信小程序开发之改变data中数组或对象的某一属性值
Jul 05 #Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
Jul 05 #Javascript
微信小程序实现左右联动的实战记录
Jul 05 #Javascript
vue实现自定义多选与单选的答题功能
Jul 05 #Javascript
You might like
php面向对象全攻略 (九)访问类型
2009/09/30 PHP
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php 字符串替换的方法
2012/01/10 PHP
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
jQuery实现的可编辑表格完整实例
2016/06/20 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
深入理解React高阶组件
2017/09/28 Javascript
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
js中this对象用法分析
2018/01/05 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
python3 读取Excel表格中的数据
2018/10/16 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
python模块导入的方法
2019/10/24 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
python异常处理和日志处理方式
2019/12/24 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
计算机相关的自我评价
2014/01/15 职场文书
法律专业学生的自我评价
2014/02/07 职场文书
出国留学经济担保书
2014/04/01 职场文书
师范生见习报告范文
2014/11/03 职场文书
校运会广播稿
2015/08/19 职场文书
聘任书格式及范文
2015/09/21 职场文书
Python制作动态字符画的源码
2021/08/04 Python
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS