微信小程序云开发-云存储-上传文件(图片/视频)到云存储 精简代码
说明 图片/视频这类文件是从客户端会话选择文件。
一、wxml文件添加if切换显示
<!--上传文件到云存储-->
<button bindtap="chooseImg" type="primary" >上传单张图片</button>
<button bindtap="chooseVideo" type="primary" >上传单个视频</button>
<view class="myFile">
<image wx:if="{{showImage}}" src="{{imageUrl}}"></image>
<video wx:if="{{showVideo}}" src="{{videoUrl}}"></video>
</view>
二、wxss文件
.myFile{
margin: 30rpx auto;
text-align: center;
}
button{
margin: 30rpx;
}
三、js文件
1、定义data
初始值赋值,定义图片和视频初始的显示状态(都隐藏不显示)
data:{
//默认图片和视频都不显示
showImage:false,
showVideo:false
},
2、上传图片和上传视频的代码整合
将uploadImg()和uploadVideo()整合成uploadFile()
uploadFile(tempFile,fileName,type){ //传递三个参数,tempFile是所选文件的临时路径,fileName是上传到云存储的cloudPath的值,type表示上传的文件类型(1表示上传图片,2表示上传视频)
console.log("要上传文件的临时路径",tempFile)
let timestamp = (new Date()).valueOf()
wx.cloud.uploadFile({
cloudPath: fileName, //云存储的路径
filePath: tempFile, // 文件路径
}).then(res => {
console.log("上传成功",res)
wx.showToast({
title: '上传成功',
icon:"success",
duration:2000
})
let that = this
if(type==1){
setTimeout(function(){
that.setData({
imageUrl:res.fileID,
showImage:true, //显示图片
showVideo:false //隐藏视频
})
},2000)
}else if(type ==2){
setTimeout(function(){
that.setData({
videoUrl:res.fileID,
showImage:false,
showVideo:true
})
},2000)
}
})
.catch(err => {
console.log("上传失败",err);
})
}
3、在chooseImg()函数和chooseVideo()函数中分别调用整合后的上传文件函数uploadFile()
1.在chooseImg()函数中调用uploadFile()
chooseImg(){
let that = this
wx.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success (res) {
console.log("选择成功",res);
wx.showLoading({
title: '上传中',
})
// tempFilePath可以作为img标签的src属性显示图片
const tempFilePaths = res.tempFilePaths
//调用uploadImg(tempFile)函数,实现图片上传功能
//that.uploadImg(tempFilePaths[0])
//调用uploadFile()实现上传文件功能
let timestamp = (new Date()).valueOf()
that.uploadFile(tempFilePaths[0],+timestamp+'.png',1) //传递三个参数
}
})
}
2.在chooseVideo()函数中调用uploadFile()
chooseVideo(){
let that = this
wx.chooseVideo({
sourceType: ['album','camera'],
maxDuration: 60,
camera: 'back',
success(res) {
//console.log(res.tempFilePath);
console.log("----------",res.tempFilePath);
wx.showLoading({
title: '上传中',
})
//调用uploadImg(tempFile)函数,实现图片上传功能
//that.uploadVideo(res.tempFilePath)
//调用uploadFile()实现上传文件功能
let timestamp = (new Date()).valueOf()
that.uploadFile(res.tempFilePath,+timestamp+'.mp4',2) //传递三个参数(第一个参数传递所选文件的临时路径,第二个参数传递云存储的路径,第三个参数传递上传文件的类型)
}
})
}
四、最终效果

微信小程序云开发-云存储-上传文件(图片/视频)到云存储 精简代码的更多相关文章
- 微信小程序 springboot nginx 做图片存储 上传 浏览
微信小程序前端-springboot后端-nginx图片存储 前言 本人小白一名,这是第一次学习微信小程序,特此做个记录. 首先准备nginx做图片存储 选择一个地址存放图片 #我的地址 [root@ ...
- 微信小程序踩坑日记3——上传照片至服务器
0. 引言 主要解决将小程序端获取的图片保存在服务器上.亲测可用的服务端脚本. 1. 获取照片 通过wx.chooseImage()方法,获取到图片,使用wx.uploadFile()上传图片. wx ...
- 《微信小程序商城开发实战》笔者的新书,欢迎各位粉丝上京东购买
作者图书京东链接,请点击------>>> **微信小程序商城开发实战** 附京东真实评价截图: 编辑推荐 在当今移动互联网大潮中,微信应用凭借其庞大的用户基数和极强的用户黏性 ...
- Mac上微信小程序官方开发工具卡死的问题
Mac上微信小程序官方开发工具打开后卡死,无法操作,也关不掉,解决方案: 三步: 1.在应用中删除“微信web开发者工具” 2.删除一下几个配置和缓存文件: 1.-/Library/Applicati ...
- 小程序语音红包开发中 汉字转拼音的问题 微信小程序红包开发遇到的坑
公司最近在开发微信小程序的红包功能,语音红包需要用到文字转拼音的功能. 之前介绍过怎么将中文的汉字转为拼音的,具体看下面这篇文章. 微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信 ...
- 微信小程序快速开发
微信小程序快速开发 一.注册小程序账号,下载IDE 1.官网注册https://mp.weixin.qq.com/,并下载IDE. 2.官方文档一向都是最好的学习资料. 注意:1)注册账号之后会有一个 ...
- 【微信小程序】开发实战 之 「配置项」与「逻辑层」
微信小程序作为微信生态重要的一环,在实际生活.工作.商业中的应用越来越广泛.想学习微信小程序开发的朋友也越来越多,本文将在小程序框架的基础上就微信小程序项目开发所必需的基础知识及语法特点进行了详细总结 ...
- BeautyWe.js 一套专注于微信小程序的开发范式
摘要: 小程序框架... 作者:JerryC 原文:BeautyWe.js 一套专注于微信小程序的开发范式 Fundebug经授权转载,版权归原作者所有. 官网:beautywejs.com Repo ...
- Django微信小程序后台开发教程
本文链接:https://blog.csdn.net/qq_43467898/article/details/83187698Django微信小程序后台开发教程1 申请小程序,创建hello worl ...
- vue+uni-app商城实战 | 第一篇:【有来小店】微信小程序快速开发接入Spring Cloud OAuth2认证中心完成授权登录
一. 前言 本篇通过实战来讲述如何使用uni-app快速进行商城微信小程序的开发以及小程序如何接入后台Spring Cloud微服务. 有来商城 youlai-mall 项目是一套全栈商城系统,技术栈 ...
随机推荐
- 在NVIDIA-Jetson平台上构建智能多媒体服务器
在NVIDIA-Jetson平台上构建智能多媒体服务器 Building a Multi-Camera Media Server for AI Processing on the NVIDIA Jet ...
- 浅谈Gson和fastjson使用中的坑
相信大家在代码编写中都用过Gson和fastjson吧,用来进行 Java对象和json字符串之间的转换. 本篇文章就主要介绍博主在工作中使用这两款工具时遇到的坑和对应的解决办法. 觉得有用的可以点个 ...
- Git操作文档
Git 操作文档 Git 是一个十分流行的版本控制系统,Git 和 SVN 区别在于,SVN使用增量文件系统,存储每次提交之间的差异.而 git 使用全量文件系统,存储每次提交的文件的全部内容(sna ...
- java处理方法的多个返回值
我第一次接触到元组是在java编程思想这本书中,当时我正为方法的多个返回值苦恼.因为我之前处理多个返回值方法的时候,要不建一个新的实体类,要不在接收的方法中建立一个对象,返回值之前给其赋值,要不通过异 ...
- 【模拟7.29】大佬(概率期望DP)
首先根据数据范围,可以判断基本上是n^2的复杂度 通过分析我们发现每一次都可以从m个数中任意选,既然任意选,那么此时的概率的分母就是不变的,然而题中涉及的是某一段的最大值,所以我们按套路假设 f[i] ...
- Centos7安装部署搭建gitlab平台、汉化
Centos7安装部署搭建gitlab平台.汉化 安装环境要求:内存不要小于4G,否则后期web界面可能会报错 一.准备工作 1.1 查看系统版本 首先查询系统版本,下载Gitlab的对应版本 [ro ...
- layui 修改表格边框颜色
/*设置不可编辑时字体颜色*/ .layui-disabled, .layui-disabled:hover { color: #101010 !important; background-color ...
- 关于PHP导出数据超时的优化
一般情况下,导出超时可能都是以下三种情况: 一.sql语句复杂,查询时间过长: 二.处理查询后数据逻辑冗余: 三.数据量过大导致响应超时. 接下来分别给出这三种情况的优化建议. 一.sql语句复杂,查 ...
- HDU 4821 2013长春现场赛hash
题意: 一个字符串S 问其中有几个子串能满足以下条件: 1.长度为M*L 2.可以被分成M个L长的小串 每个串都不一样 分析: hash方法,一个种子base,打表出nbase[i]表示base的 ...
- Murmur3 Hash 128位java和C#方法
java调用com.google.guava 引入依赖 <dependency> <groupId>com.google.guava</groupId> <a ...