更新记录

1.0.2(2021-08-25) 下载此版本

  • 兼容uni-app vue3

1.0.1(2020-08-07) 下载此版本

  • 修复 支付宝小程序上传文件可能无法获取正确后缀的Bug

1.0.0(2020-06-09) 下载此版本

  • 初始化项目
查看更多

平台兼容性

阿里云 腾讯云 支付宝云
×
Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
× × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


过期说明

本插件仍然可用,但推荐使用更新的 uni-file-picker 组件,基于clientDB,前端直传,后端不但进入云存储还在云数据库里存储记录。详见

说明

上传文件到uniCloud云存储的基本示例,里面有兼容多端的逻辑。

注意

  • 支付宝小程序、钉钉小程序上传需要fileType参数,在uniCloud.uploadFile里默认为image
  • 头条小程序选择文件获取的地址里面可能会带有query,即形如:xxx/xxx.png?xxx=xxx
  • H5端chooseImagechooseVideo可以获取原始file对象从而拿到文件名
    • chooseImage可以使用res.tempFiles[0]获取
    • chooseVideo可以使用res.tempFile获取
  • 腾讯云如需显示图片可以使用getTempUrl获取临时链接,阿里云可以直接使用fileID进行显示
    • 腾讯云如果配置了所有人可读权限,则不需要临时链接后面的query部分也可访问,后续会实现针对目录的更精细的权限控制

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

上传文件至uniCloud

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

uniCloud文件上传示例(以下简称软件)源码使用许可协议

2022年10月

本许可协议,是数字天堂(北京)网络技术有限公司(以下简称DCloud)对其所拥有著作权的“软件”,提供的使用许可协议。

您对“软件”的复制、使用、修改及分发受本许可协议的条款的约束,如您不接受本协议,则不能使用、复制、修改本软件。

授权许可范围

a) 授予您永久性的、全球性的、免费的、非独占的、不可撤销的本软件的源码使用许可,您可以使用这些源码制作自己的应用。

b) 您只能在DCloud产品体系内使用本软件及其源码。您不能将源码修改后运行在DCloud产品体系之外的环境,比如客户端脱离uni-app,或服务端脱离uniCloud(如涉及uniCloud)。

c) DCloud未向您授权商标使用许可。您在根据本软件源码制作自己的应用时,需以自己的名义发布软件,而不是以DCloud名义发布。

d) 本协议不构成代理关系。

DCloud的责任限制 “软件”在提供时不带任何明示或默示的担保。在任何情况下,DCloud不对任何人因使用“软件”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。

您的责任限制

a) 您需要在授权许可范围内使用软件。

b) 您在分发自己的应用时,不得侵犯DCloud商标和名誉权利。

c) 您不得进行破解、反编译、套壳等侵害DCloud知识产权的行为。您不得利用DCloud系统漏洞谋利或侵害DCloud利益,如您发现DCloud系统漏洞应第一时间通知DCloud。您不得进行攻击DCloud的服务器、网络等妨碍DCloud运营的行为。未经书面许可,您不得利用DCloud的产品进行与DCloud争夺开发者的行为。

d) 如您违反本许可协议,需承担因此给DCloud造成的损失。

本协议签订地点为中华人民共和国北京市海淀区。

根据发展,DCloud可能会对本协议进行修改。修改时,DCloud会在产品或者网页中显著的位置发布相关信息以便及时通知到用户。如果您选择继续使用本框架,即表示您同意接受这些修改。

条款结束

MacroCheng

2023-09-13

运行在基座上可以上传,发布成H5托管之后用网页打开上传失败,报400错误,这个是怎么回事呀?

256***@qq.com

2022-11-27

文档呢?????????????????????????????????????????????????????????????????????????????????????????文档呢?????????????????????????????????????????????????????????????????????????????????????????文档呢?????????????????????????????????????????????????????????????????????????????????????????文档呢?????????????????????

158***@qq.com

2021-08-17

想问一下,使用uniCloud.uploadFile函数上传图片,将项目在微信小程序中运行起来,在电脑的微信开发者工具是可以上传图片与获取的,但是启动微信小程序的真机调试或者预览,利用手机(ios)就不会执行uniCloud.uploadFile函数,请问是需要转化为云函数处理吗?

DCloud_uniCloud_WYQ 2021-08-25

看一下是不是没在小程序后台添加安全域名

800***@qq.com

2021-06-15

多图片上传 支持了吗

DCloud_uniCloud_WYQ 2021-08-25

暂无计划支持,一张一张的传也没太大区别

948***@qq.com

2020-12-09

文件上传之后怎么下载呢

350***@qq.com

2020-08-09

在app端支持多图上传吗?

DCloud 2020-08-10

不支持,多图目前需要循环上传

897***@qq.com

2020-08-08

VM195:1 [API_getFileInfo_error] 无效参数 点击搜索解决方案:https://opendocs.alipay.com/search?keyword=my.getFileInfo%202&pageIndex=1&pageSize=10&channel=ide_console

支付宝小程序报这个错误 其他H5 微信都不报

DCloud 2020-08-10

你用的支付宝小程序开发工具是什么版本?我这边试了一下没这个问题

刘林

2020-07-30

已经绑定了云空间,运行出现 Error: [tcb-js-sdk] 未登录CloudBase 是怎么回事呢 要怎么登陆

DCloud 2020-08-03

你用的是什么版本的HBuilderX

904***@qq.com

2020-06-29

大佬,非uniapp项目,怎么上传图片到云存储,fileContent要怎么传,file,base64,都不行,或者 base64怎么转 Butter

DCloud_uniCloud_WYQ 2020-06-29

非uni-app项目目前只可以通过云函数url化访问云函数,base64转buffer可以Buffer.from('xxxx','base64')

龙啸泽渊

2020-06-11

你好,官方大大,我有一个想法。 因为云存储是按量收费,而且有的用户账号异常也不应该有上传权限,或者说每天只限制上传100张,否则就是刷量了,这种需要通过云函数查库判断,但是我目前是客户端直接调用uploadFile差传到云存储的,这种情况该怎么改动呢?我看文档有个uploadFile是需要填写url的,也就是说必须把云函数url化才能实现这种需求吗?

我也是觉得这样安全,api方面我写了公用函数控制访问数量(我是用redis实现的,希望uniCloud有这个类似nginx限制每秒或者每分钟内访问次数) ,上传这块我没有找到方法,因为代理池+脚本很轻松就造成不必要损失和分分钟欠费

DCloud 2020-06-11

非要说实现的话可以把文件转成base64,传到云函数,云函数把base64转成buffer再用uploadFile传到云存储,但是不推荐这么用。后面会提供一个云函数端生成上传参数的api