微信小程序云存储(文件上传到云端)
小程序云存储实现文件上传
- 1、云存储
- 2、云存储上传文件示例
- 2.1 wx.cloud.uploadFile()接口测试
- 2.2 其他接口
1、云存储
我们直到,云开发控制台更多的是对项目中的初始文件的操作管理,例如项目的Logo图片可以通过云开发控制台提起上传到云端。项目在执行的过程中也会涉及文件的操作,例如用户上传图片的操作,这时就需要用到云开发存储API。
小程序云开发提供了一系列存储操作API,有uploadFile()
文件上传接口、downloadFile()
下载文件接口、deleteFile()
删除文件接口和getTempFileURL()
换取临时链接接口。
wx.cloud.uploadFile()
接口的参数列表如下所示。如果采用callback风格,调用回调函数success、fail、complete中的任何一个,则会返回一个UploadTask对象(封装返回信息的对象),通过UploadTask对象可监听上传事件。
字段 | 说明 | 数据类型 | 默认值 | 必填 |
---|---|---|---|---|
cloudPath | 云存储路径,命名限制见文件名命名限制 | String | - | Y |
filePath | 要上传文件资源的路径 | String | - | Y |
config | 配置 | Object | - | N |
success | 成功回调 | |||
fail | 失败回调 | |||
complete | 结束回调 |
config 对象定义
字段 | 说明 | 数据类型 |
---|---|---|
env | 使用的环境 ID,填写后忽略 init 指定的环境 | String |
success 返回参数
字段 | 说明 | 数据类型 |
---|---|---|
fileID | 文件 ID | String |
statusCode | 服务器返回的 HTTP 状态码 | Number |
errMsg | 错误信息,格式 uploadFile:ok | String |
fail 返回参数
字段 | 说明 | 数据类型 |
---|---|---|
errCode | 错误码 | Number |
errMsg | 错误信息,格式 uploadFile:fail msg | String |
返回值
如果请求参数中带有 success/fail/complete 回调中的任一个,则会返回一个 UploadTask 对象,通过 UploadTask 对象可监听上传进度变化事件,以及取消上传任务。
2、云存储上传文件示例
2.1 wx.cloud.uploadFile()接口测试
小程序端uploadFile.wxml代码如下:
<!--index.wxml-->
<view class="container"><!-- 用户 openid --><view class="userinfo"><button open-type="getUserInfo" bindgetuserinfo="onGetUserInfo"class="userinfo-avatar"style="background-image: url({{avatarUrl}})"></button><view><button class="userinfo-nickname" bindtap="onGetOpenid">点击获取 openid</button></view></view><!-- 上传图片 --><view class="uploader"><view class="uploader-text" bindtap="doUpload"><text>上传图片</text></view><view class="uploader-container" wx:if="{{imgUrl}}"><image class="uploader-image" src="{{imgUrl}}" mode="aspectFit" bindtap="previewImg"></image></view></view></view>
uploadFile.js
//index.js
const app = getApp()Page({data: {avatarUrl: './user-unlogin.png',userInfo: {},logged: false,takeSession: false,requestResult: ''},onLoad: function() {if (!wx.cloud) {wx.redirectTo({url: '../chooseLib/chooseLib',})return}},// 上传图片doUpload: function () {// 选择图片wx.chooseImage({count: 1,sizeType: ['compressed'],sourceType: ['album', 'camera'],success: function (res) {console.log(res)wx.showLoading({title: '上传中',})const filePath = res.tempFilePaths[0]var timestamp = (new Date()).valueOf();//新建日期对象并变成时间戳wx.cloud.uploadFile({cloudPath: "img/"+timestamp+".jpg", // 上传至云端的路径filePath: filePath, // 小程序临时文件路径success: res => {console.log('[上传文件] 成功:', res)app.globalData.fileID = res.fileIDapp.globalData.cloudPath = cloudPathapp.globalData.imagePath = filePathwx.navigateTo({url: '../storageConsole/storageConsole',})},fail: e => {console.error('[上传文件] 失败:', e)wx.showToast({icon: 'none',title: '上传失败',})},complete: () => {wx.hideLoading()}})},fail: e => {console.error(e)}})},})
代码讲解:本例先调用了
wx.chooseImage()
接口选择一幅图片,然后调用wx.cloud.uploadFile()
接口上传图片到云端。cloudPath
字段是上传文件在云端的文件名字,为了不重复,这里采用了当前时间戳来命名云端文件名。filePath
字段是本地文件的路径,它的值取wx.chooseImage()
接口的回调参数res.tempFilePaths[0]。
示例效果如下:
点击上传图片,并选择一张图片上传。
上传完毕后取云开发控制台中查看是否上传成功
上传成功,没有任何的问题。
2.2 其他接口
wx.cloud.downloadFile()
接口从云存储空间下载文件的示例代码如下:
wx.cloud.downloadFile({fileID: 'a7xzcb',success: res => {// get temp file pathconsole.log(res.tempFilePath)},fail: err => {// handle error}
})
deleteFile(fileList: string[])
接口删除云端文件的示例代码如下:
wx.cloud.deleteFile({fileList: ['a7xzcb'],success: res => {// handle successconsole.log(res.fileList)},fail: err => {// handle error},complete: res => {// ...}
})
微信小程序云存储(文件上传到云端)相关推荐
- 微信小程序云开发-批量上传文件到云储存空间
微信小程序开发 自己最近在玩微信小程序,准备记录一些自己遇到的,网络上没有对应教程(也许是自己没找到),或者是教程比较少的问题,然后给出自己的解决方案 目录 微信小程序开发 问题 一.云储存是什么? ...
- 微信小程序云开发实现上传文件和预览下载文件
微信小程序云开发实现上传文件和预览下载文件 一.前言 目前微信提供了一个接口 wx.chooseMessageFile 它能让用户从聊天记录里面选择一个或者多个文件,然后返回它的一些信息,列入文件的p ...
- 微信小程序开发之文件上传下载应用场景(附Demo源码)
微信小程序开发之文件上传下载应用场景(附Demo源码),Demo为小相册应用,源码在附件中,本示例需要腾讯云支持. http://www.henkuai.com/forum.php?mod=viewt ...
- 微信小程序+SpringBoot实现文件上传与下载
微信小程序+SpringBoot实现文件上传与下载 1.文件上传 1.1 后端部分 1.1.1 引入Apache Commons FIleUpload组件依赖 1.1.2 设置上传文件大小限制 1.1 ...
- mysql导入微信小程序云开发_微信小程序-云开发数据库上传json文件
小程序新增了云开发功能,对于个人开发者是个利好消息.可以省去购买服务器,购买域名以及繁琐配置等步骤,减轻了开发者的负担.至于如何云开发我就不在这里赘述了,请移步微信小程序云开发官方文档,说的很清楚.这 ...
- uniapp微信小程序 选择聊天记录文件上传
目录 精简版总结 示例 容易踩的坑 1.页面刷新问题 2.extension问题 精简版总结 单文件 wx.chooseMessageFile({count: 1,//限制选择的文件数量type: ' ...
- 微信小程序开发之——文件上传
一 概述 将录像的结果传递给服务器,服务端提供的接口文档为: 字段名称 字段类型 字段说明 必填项 示例 token String token 是 服务器下发的token(header) file F ...
- 微信小程序云多图上传并存储路径到云数据库【二】
先来看最终效果: 一: 写一个简单的界面,主要是利用小程序上传文件api接口来实现:
- 微信小程序云开发图片上传完整代码附效果图
在app.json里面加如下代码, 使用 WeUI组件库.点击跳转 "useExtendedLib": {"weui": true}, 先看效果图 wxml & ...
- 【微信小程序】大文件上传
最新文章
- R语言data.table进行滚动数据连接,滚动连接通常用于分析涉及时间的数据(例如商业销售活动和对应的广告投放的安排之之间的关系)实战:实战和动画说明滚动数据连接的形式及方法
- 有一间计算机教室英语,妙手巧动微机教室实施外语视听教学
- wxss 点击样式_小程序05-样式WXSS(示例代码)
- Swift数组扩容原理
- javascript标签在页面中的位置探讨
- Leet Code OJ 110. Balanced Binary Tree [Difficulty: Easy]
- C#微信公众号开发系列教程二(新手接入指南)
- spark算子大全glom_(七)Spark Streaming 算子梳理 — repartition算子
- matlab2010b数值分析,matlab2010b教程
- 爬取学校教务网课表与成绩 java版
- RK3568平台开发系列讲解(安卓篇)JNI调用流程分析
- 无人机与卡车联合配送 - README
- 51单片机:数码管动态显示
- 网络安全应急响应----7、数据泄漏应急响应
- CSS下划线与文字间距,下划线粗细以及下划线颜色的设置
- Java4班题库-传智专修学院Java面试题库二
- 捉泥鳅用计算机怎么按,看看冬天是怎么捉泥鳅的,吓傻了
- 学习Java第二十四天
- 2022考研写作不过如此pdf电子版
- 尚学堂百战程序员---第一章面试题