微信小程序上传组件封装uploadHelper2.0使用整理

news2024/12/28 18:19:39

一、uploadHelper2.0使用步骤说明

uploadHelper.js ---上传代码封装库

cos-wx-sdk-v5.min.js---腾讯云,对象存储封装库

第一步,下载组件代码,放置到自己的小程序项目中

第二步、 创建上传对象,执行选择图片/视频

    var _this = this;
    //选择图片并上传
    var upload = new Upload(this, {
      type: 'single',
      onSuccess: res => {
        var relativeName = res.relativeName;
        _this.setData({
          src1: _this.data.domain + relativeName
        });
      }
    });
    upload.choose();

第三步、.Net 后台安装 Uploader8.0 最新版本接受上传内容

        /*********Form 方式使用**********/
        public void Form()
        {
            try
            {
                FormReceiver _receive = new FormReceiver(this.HttpContext);
                //接收文件成功
                _receive.OnSuccess = (data) =>
                {
                    // Write(string.Format("新文件名{0},旧文件名{1}", data.NewName, data.OldName));
                };
                _receive.DoWork();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

二、图片上传使用案例

参数说明:

/**
 * 上传控件封装,v2.0
 * 增加视频上传处理
 * 
 * 上传类型:type
 * 1.single,不改变图片大小,但是压缩质量上传;适合大图上传
 * 2.imgsingle,不改变图片的比例,在指定范围内等比例缩放 (默认上传模式,适用高,压缩率高),最大尺寸,大图(maxWidth*maxHeight)
 * 3.fixedcut,固定比例缩放(maxWidth*maxHeight),最大化图片剪切
 * 4.cutdouble,固定最小图(minWidth*minHeight),最大图(maxWidth*maxHeight),裁剪图片
 * 5.imgdouble,常用缩略图模式,不改变原图片的比例,在指定范围内等比例缩放,小图(minWidth*minHeight); 大图((maxWidth*maxHeight))
 * 7.videosingle, 视频压缩上传默认---chooseVideo()
 * 8.videotencent,视频腾讯云上传模式---chooseVideo()------(特别说明,视频目前进支持腾讯云上传)
 * 
 * 参数说明:
 * url:上传地址
 * count: 可上传数量,最大值20
 * maxWidth,maxHeight:大图片上线
 * minWidth,minHeight: 小图上线
 * auto:是否自动上传
 * onSuccess:一张图片上传成功
 * onError:图片上传失败
 */

1.single 简单图片上传------如上代码案例就是

2.imgsingle  案例

不改变图片的比例,在指定范围内等比例缩放 (默认上传模式,适用高,压缩率高),最大尺寸,大图(maxWidth*maxHeight)

<button bind:tap="imgsingleClick">
  imgsingle 压缩上传上传
</button>
<image src="{{src2}}" mode="" />
<view class="line"></view>

<!-- 上传控件 -->
<view style='width:1px;height:1px;overflow:hidden;position: fixed;left:10000px;top:0px;'>
  <canvas id='CanvasUpload' type="2d" style='width:{{canWidth}}px;height:{{canHeight}}px;'></canvas>
</view>
  imgsingleClick() {
    var _this = this;
    //选择图片并上传
    var upload = new Upload(this, {
      type: 'imgsingle',
      maxWidth: 500,
      maxHeight: 500,
      onSuccess: res => {
        var relativeName = res.relativeName;
        _this.setData({
          src2: _this.data.domain + relativeName
        });
      }
    });
    upload.choose();
  },

3.fixedcut 案例

固定比例缩放(maxWidth*maxHeight),最大化图片剪切

  fixedcutClick() {
    var _this = this;
    //选择图片并上传
    var upload = new Upload(this, {
      type: 'fixedcut',
      maxWidth: 500,
      maxHeight: 500,
      onSuccess: res => {
        var relativeName = res.relativeName;
        _this.setData({
          src3: _this.data.domain + relativeName
        });
      }
    });
    upload.choose();
  },

4.cutdouble 案例

固定最小图(minWidth*minHeight),最大图(maxWidth*maxHeight),裁剪图片

  cutdoubleClick() {
    var _this = this;
    var imgList=[];
    //选择图片并上传
    var upload = new Upload(this, {
      type: 'cutdouble',
      minWidth: 300,
      minHeight: 300,
      maxWidth: 1000,
      maxHeight: 1000,
      onSuccess: res => {
        console.info(res);
        var srcsmall = _this.data.domain + res.small.relativeName;
        var srcbig = _this.data.domain + res.big.relativeName;
        _this.setData({
          srcsmall: srcsmall,
          srcbig: srcbig
        });
      },
      onAllSuccess:res=>{
     
      }
    });
    upload.choose();
  },

5.imgdouble 缩略图案例

常用缩略图模式,不改变原图片的比例,在指定范围内等比例缩放,小图(minWidth*minHeight); 大图((maxWidth*maxHeight))

  imgdoubleClick() {
    var _this = this;
    var imgList = [];
    //选择图片并上传
    var upload = new Upload(this, {
      type: 'imgdouble',
      minWidth: 300,
      minHeight: 300,
      maxWidth: 1000,
      maxHeight: 1000,
      onSuccess: res => {
        console.info(res);
        var srcsmall = _this.data.domain + res.small.relativeName;
        var srcbig = _this.data.domain + res.big.relativeName;
        _this.setData({
          srcsmall: srcsmall,
          srcbig: srcbig
        });
      },
      onAllSuccess: res => {
      }
    });
    upload.choose();
  },

三、视频上传使用案例chooseVideo()

1.videosingle  ---视频压缩切片上传(暂时没有封装,2.0版本忽略)

2.videotencent 案例 ---视频腾讯云上传模式---chooseVideo()------(特别说明,视频目前进支持腾讯云上传)

使用步骤:

1. 小程序上传 白名单,添加配置 上传域名+ 视频播放域名

2. 配置 腾讯云 对象存储参数如下

3. 页面实现功能代码:

<button bind:tap="videotencentClick">选择视频文件</button>

<video src="{{videourl}}" />
  videotencentClick() {
    var _this = this;
    /***
     * 
     * 特别说明,暂时不支持视频上传到自建服务器
     */
    //选择图片并上传
    var upload = new Upload(this, {
      type: 'videotencent',
      onSuccess: res => {
        var videourl = res.absoluteName;
        _this.setData({
          videourl
        });
      },
      onAllSuccess: res => {}
    });
    upload.chooseVideo(); //选择视频
  },

上传效果:

更多:

维信小程序禁止截屏/录屏

微信小程序canvas 使用案例(一)

微信小程序数组绑定使用案例(二)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2216273.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【java Web如何开发?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

讯飞与腾讯云:Android 实时语音识别服务对比选择

在 移动端 接入实时语音识别方面&#xff0c;讯飞和腾讯云都是优秀的选择&#xff0c;但各有其特点和优势。以下是对两者的详细比较&#xff1a; 一、讯飞语音识别 1.1 讯飞实时语音识别介绍 1.1.1 功能特点 1.支持多种语言识别&#xff0c;满足不同语种用户的需求。(普通话/…

Kafka之消费者组与消费者

消费者&#xff08;Consumer&#xff09;在Kafka的体系结构中是用来负责订阅Kafka中的主题&#xff08;Topic&#xff09;&#xff0c;并从订阅的主题中拉取消息后进行处理。 与其他消息中间件不同&#xff0c;Kafka引入一个逻辑概念——消费组&#xff08;Consumer Group&…

使用excel.js(layui-excel)进行layui多级表头导出,根据单元格内容设置背景颜色,并将导出函数添加到toolbar

本段是菜狗子的碎碎念&#xff0c;解决办法请直接从第二段开始看。layui多级表头的导出&#xff0c;弄了两天才搞定&#xff0c;中途一度想放弃&#xff0c;还好坚持下来了。一开始用的是layui的toolbar里自带的那个导出&#xff0c;但是多级表头没有正常导出&#xff0c;单元格…

FPGA学习(6)-基础语法参数化设计阻塞与非阻塞

目录 1.两种参数化不改变源文件&#xff0c;只改仿真文件的值 2.参数化设计实现模块的重用 2.1不用参数化方法 2.1.1源文件 2.1.2仿真文件 2.1.3仿真波形及实验 2.2 用参数方法 2.2.1调用之前写的led灯闪烁模块&#xff0c;在本源函数中&#xff0c;例化4次调用之前的模…

【pyspark学习从入门到精通7】DataFrames_2

目录 创建 DataFrames 生成我们自己的 JSON 数据 创建 DataFrame 创建临时表 简单的 DataFrame 查询 DataFrame API 查询 SQL 查询 创建 DataFrames 通常&#xff0c;您会通过使用 SparkSession&#xff08;或在 PySpark shell 中调用 spark&#xff09;导入数据来创建 …

SpinalHDL之错误集(一)

本文作为SpinalHDL学习笔记第七十六篇&#xff0c;作为错误集使用&#xff0c;类似高中生的错题集&#xff0c;记录使用SpinalHDL过程中遇到的问题&#xff0c;小到语法错误、版本兼容问题&#xff0c;大到SpinalHDL库函数错误等等&#xff0c;持续更新。 SpinalHDL学习笔记总…

记录 ruoyi-vue-plus在linux 部署遇到的问题

整理 linux 文件不要放在 /, 根目录下&#xff0c;要放在 home 文件夹下。docker 启动mysql 容器&#xff0c;映射的 my.cnf 文件不能设置太高权限&#xff0c;权限太高有安全问题&#xff0c;无法读取。 linux 使用注意事项 docker 文件夹 部署在home文件夹下 总结学习到的…

Asp.Net Core 发布 IIS、docker、Azure、文件夹、AAS、ASF、AWM等

发布 微软资料 微软资料 在 IIS 工作进程 (w3wp.exe) 内托管 ASP.NET Core 应用&#xff0c;称为进程内托管模型。 将 Web 请求转发到运行 Kestrel 服务器的后端 ASP.NET Core 应用&#xff0c;称为进程外托管模型。 发布到IIS 》》》Asp.net 之前 》》》 Asp.net Core …

JavaScript 网页设计案例:使用 Canvas 实现趣味打气球小游戏

JavaScript 网页设计案例&#xff1a;使用 Canvas 实现趣味打气球小游戏 在网页设计中&#xff0c;交互性和趣味性是吸引用户的重要因素。借助 JavaScript 和 HTML5 的 canvas 元素&#xff0c;我们可以轻松实现各种动画效果&#xff0c;今天将带你打造一个有趣的 打气球小游戏…

Vxe vue vxe-table 分享实现打印表格以及同时打印两张表

Vxe vue vxe-table 分享实现打印表格以及同时打印两张表 vxe-table 默认情况下支持单表打印。 在有些情况下&#xff0c;页面上同时有几张表&#xff0c;这时需要一次性打印出来。可以利用 Vxe 自带的分页打印功能&#xff0c;实现多张表同时打印。 效果 点击打印后自动调起预…

Redis --- 第四讲 --- 常用数据结构 --- set、zset

一、set类型的基本介绍 谈到一个术语&#xff0c;这个术语很可能有多种含义。Set一个含义是集合&#xff0c;一个含义是设置。 集合就是把一些有关联数据放到一起。 1、集合中的元素是无序的&#xff01; 2、集合中的元素是不能重复的。 和list类似&#xff0c;集合中的每…

数据治理为何如此简单?

欢迎来文末免费获取数据治理相关PPT和文档 引言 随着大数据技术的迅速发展&#xff0c;企业积累的数据量呈现爆炸式增长。有效的数据管理已经成为企业提高决策效率、增强竞争优势的重要手段。在这样的背景下&#xff0c;数据治理逐渐成为企业数据管理中不可或缺的一环。它不仅…

15分钟学Go 第1天:Go语言简介与特点

Go语言简介与特点 1. Go语言概述 Go语言&#xff08;又称Golang&#xff09;是由谷歌于2007年开发并在2009年正式发布的一种开源编程语言。它旨在简单、高效地进行软件开发&#xff0c;尤其适合于网络编程和分布式系统。 1.1 发展背景 多核处理器&#xff1a;随着计算机硬件…

MFC扩展库BCGControlBar Pro v35.1新版亮点:改进网格控件性能

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版 v35.1已全新发布了&#xff0c;这个版本改进网格控件的性能、增强工具栏编辑器功能等。 …

hadoop集群搭建-克隆虚拟机,安装jdk,hadoop

2.2 hadoop运行环境的搭建 2.2.1 环境准备 1&#xff09;安装模板虚拟机&#xff0c;IP地址 192.168.10.100&#xff0c;主机名hadoop100&#xff0c;内存41GB&#xff0c;硬盘50GB 2&#xff09;虚拟机配置 首先测试虚拟机是否可以正常上网&#xff0c;测试方法ping www.b…

HarmonyOS Next模拟器异常问题及解决方法

1、问题1&#xff1a;Failed to get the device apiVersion. 解决方法&#xff1a;关闭模拟器清除用户数据重启

centos7.9调整磁盘分区大小

在安装centos7.9时我们一般采用默认分区设置&#xff0c;使用LVM来管理磁盘空间&#xff0c;根分区只有50GB&#xff0c;其余的所有可用空间都分配在/home分区下。可是centos7中大多数的应用软件都是安装在根分区的&#xff0c;在使用过程中经常会出现明明系统还有很大的磁盘空…

CSS 选择器简单回顾

引言 当我们探讨网页设计和开发时, CSS(层叠样式表) 无疑是一个不可或缺的技术, 它使我们能够精确控制网页的外观和布局, 为用户创造出独特的视觉体验、以及良好的交互体验!! 而一个完整的 CSS 规则则是由两个主要部分组成: 选择器和声明块 那么今天我们就来盘点下常见的几种选…

jmeter使用csv数据

背景 使用jmeter对系统进行压测。测试数据存储在了csv中&#xff0c;多线程压测的时候&#xff0c;csv中的一条数据不能多个线程同时使用&#xff0c;数据全部使用过后&#xff0c;需要终止压测。 功能点 从csv读取数据后&#xff0c;完成接口数据拼接。多线程依次从csv文件…