《微信小程序开发从入门到实战》学习四十一

4.3 云开发文件存储

文件存储功能支持将任意数量和格式的文件(如图片和视频)保存在云端,支持 以文件夹的形式将文件归类。

在云开发控制台中,可以对云端保存的文件进行管理。

也可以通过文件存储API对文件进行上传、删除、移动、下载和搜索操作。

4.3.1 在控制台中管理文件存储

云开发控制台的文件存储管理页面如下图所示:

在云开发控制平台,管理文件存储的操作方式与网盘相似 ,

单击按钮可以实现上传文件,删除文件,新建文件夹,删除文件夹。在文件列表里查询到文件名称、FileID、文件大小及更新时间等信息,在当前路径中通过文件名称的前缀搜索文件。

    上传的文件有一个唯一的FileID,在小程序基础库2.3.0以上的版本,image组件和video文件组件都支持云开发的FileID,可通过src属性使用对应文件的FileID,代码如下:

  <image src="cloud://test-8-1322735059/test.png"/>

在控制台中,可对文件存储的权限设置进行修改。

云开发控制台和服务端API始终有所有文件的读/写权限,

小程序端API的权限控制提供了四个级别的权限,如下所示:

权限规则使用场景
所有用户可读,仅创建者可读/写用户头像、用户公开相册等
仅创建者可读/写私密相册、网盘文件等
所有用户可读(仅管理端可写)文章配图、商品图片等
所有用户不可读/写(仅管理端可读/写)业务日志等

(刚刚意识到创建者不是代码创建者,而是指用户创建自己用户头像相册这个创建者。)

4.3.2 上传文件

小程序端和云函数,可使用API将文件上传至云空间文件存储空间。

上传文件与下载文件的小程序API与服务端API不太一样。

在小程序端,使用wx.cloud.uploadFile可以将本地文件上传至云空间,代码如下:

    // 使用回调风格的API上传文件,会返回一个uploadTask对象

   const uploadTask = wx.cloud.uploadFile({

     cloudPath: 'example.png', //上传至云端的路径

     filePath: '/imgs/StockSnap_MUT1M3ZKZX.jpg', //本地文件路径

     success: res => {

       // 上传成功后会返回文件的FileID

       // 可以根据具体的使用需求对FileID进行一些操作,例如与其他相关信息一起保存在数据库中

       console.log(res.fileID)

     },

     fail: err => {

      console.log(err)

     }

   })

   // 在uploadTask 对象上可以设置上传进度的监听回调

   uploadTask.onProgressUpdate(res => {

     console.log('上传进度', res.progress)

     console.log('已经上传的数据进度', res.totalBytesSent)

     console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend)

   })

   // 也可以通过uploadTask上面的abort方法取消上传任务

   // uploadTask.abort()

   //上传文件同样也支持Promise风格的API,但是不再返回uploadTask对象

   wx.cloud.uploadFile({

     cloudPath:'example.jpg',

     filePath: '/imgs/StockSnap_MUT1M3ZKZX.jpg'

   }).then(res => {

     //get resource ID

     console.log(res.fileID)

   }).catch(error => {

     //handle error

   })

如果云空间已经存在该文件,则上传时会覆盖源文件。

如果希望将文件上传云空间的某个文件夹下,只需要将文件夹名称放入cloudPath,加上“/”.

cloudPath: 'test/example.png'

上传文件的本地路径可以通过小程序提供的一些API获取,比如从相册选取图片的APIwx.chooseImage,代码如下:

wx.chooseImage({

     count: 1,//最多选取几张图片

     success(res) {

       // tempFilePath是一个string[]类型的值,数组的每一项代表了用户选取的图片的临时地址

       const tempFilePaths = res.tempFilePaths

       wx.cloud.uploadFile({

         cloudPath: 'test/example.jpg',

         filePath:tempFilePaths[0] //由于限制了count为1,因此数组中只有1个元素

       })

     }

   })

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SA与NSA网络架构的区别

SA与NSA网络架构的区别 1. 三大运营商网络制式&#xff1a;2. 5G组网方式及业务特性3. NSA-3系列4. NSA—4系列5. NSA-7系列6. 5G SA网络架构7. 运营商策略 1. 三大运营商网络制式&#xff1a; 联通&#xff1a;3G(WCDMA)\4G(FDD-LTE/TD-LTE)\5G(SA/NSA)移动&#xff1a;2G(GS…

如何购买华为云服务器

华为云是华为推出的云计算服务平台&#xff0c;旨在为企业和个人提供全面的云端解决方案。它提供了包括计算、存储、数据库、人工智能、大数据、安全等多种云服务&#xff0c;覆盖了基础设施、平台和软件级别的需求。华为云致力于构建安全可信赖的云计算基础设施&#xff0c;以…

数据库Delete的多种用法

数据库的Delete操作是用来删除数据库中的数据记录的&#xff0c;它是数据库操作中的一种重要操作&#xff0c;能够帮助用户删除不需要的数据&#xff0c;以便保持数据库的整洁和高效。在使用Delete操作时&#xff0c;需要注意确保操作的准确性和安全性&#xff0c;以免误删重要…

AI助力智慧农业,基于YOLOv3开发构建农田场景下的庄稼作物、田间杂草智能检测识别系统

智慧农业随着数字化信息化浪潮的演变有了新的定义&#xff0c;在前面的系列博文中&#xff0c;我们从一些现实世界里面的所见所想所感进行了很多对应的实践&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 《自建数据集&#xff0c;基于YOLOv7开发构建农田场景下杂草…

数电笔记之寄存器

数电 1 数字电路基础 1.2 二进制数据表达 1.2.1 二进制简介 1.2.2 用二进制表达文字 常用的中文字符集&#xff1a;GBK&#xff0c;UTF8 1.2.3 用二进制表达图片 图片像素化&#xff0c;像素数字化 1.2.4 用二进制表达声音 1.2.5 用二进制表达视频 1.3 数字电路 1.3…

Python与PHP:编写大型爬虫的适用性比较

目录 一、引言 二、Python编写爬虫的优势 1、强大的数据处理能力 2、丰富的网络库和框架 3、良好的可读性和易维护性 4、社区支持和生态系统 三、PHP编写爬虫的优势 1、简单易学 2、广泛的应用领域 3、高效的性能 4、灵活的请求处理方式 四、大型爬虫的编写实例&am…

JavaScript <md5加密的两种不同输出结果分析>--案例(二点一)

前言: 问题是这样的,在浏览器中看到这段代码 然后在控制台进行输出.得到: 紧接着,就在,js文件里面进行转译: 可是,得到的结果是: 这是问题!!! 正题: 为什么相同的js代码,在 .js 文件中的输出与 Chrome 控制台中的输出不一样? 环境差异&#xff1a;不同的JavaScript环境&…

Linux使用root用户安装完MySQL软件后,配置MySQL这个普通用户登录

在 Linux 系统中&#xff0c;当您使用 root 用户安装 MySQL 后&#xff0c;系统会自动创建一个名为 mysql 的系统用户。这个 mysql 用户主要用于管理 MySQL 服务的运行&#xff0c;通常是没有登录系统的权限的。如果您希望使这个 mysql 用户能够登录到系统&#xff0c;您需要设…

Android 12.0 Folder文件夹全屏后文件夹图标列表居中时拖拽app到桌面的优化

1.概述 在12.0的系统rom产品开发中,在Launcher3中在目前的产品需求开发中,对于Launcher3中的文件夹Folder的布局UI 进行了定制化的需求要求把Folder修改为全屏,然后在中间显示文件夹图标的列表,这时候如果Folder是全屏的话,如果拖拽文件夹列表中的app图标,只有拖拽 到屏…

【数据结构实验】树(一)构建二叉查找树(BST)

文章目录 1. 引言2. 二叉查找树3. 实验内容3.1 实验题目&#xff08;一&#xff09;输入要求&#xff08;二&#xff09;输出要求 3.2 算法实现1. 数据结构2. 全局变量3. 中序遍历函数InOrder4. 二叉查找树的构建函数T5. 主函数 3.3 代码整合 4. 实验结果 1. 引言 二叉查找树&a…

ntopng如何将漏洞扫描与流量监控相结合,以提高网络安全性

来源&#xff1a;艾特保IT 虹科干货 | ntopng如何将漏洞扫描与流量监控相结合&#xff0c;以提高网络安全性 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; ntopng为人所知的“身份”是被动流量监控。然而&#xff0c;如今的ntopng6.0也进化出主动监控功能来&#xf…

Mybatis XML 配置文件

我们刚开始就有说Mybatis 的开发有两种方式: 1.注释 2.XML 注解和 XML 的方式是可以共存的 我们前面说的都是注释的方式,接下来是XML方式 XML的方式分为三步 : 1.配置数据库(配在 application.yml 里面) 这个跟注释的配置是一样的,username应该都是一样的,password记得写…

java小工具util系列3:JSON转实体类对象工具

文章目录 准备工作1.JSONObject获取所有的key2.集合中实体对象转换 list中Enrey转Dto3.字符串转List<BusyTimeIndicatorAlarmThreshold>4.json字符串转JSONObject5.list根据ids数组过滤list6.json字符串转JavaBean对象7.json对象转javabean8.jsonObject转map9.List\<U…

RPG项目01_层级设置

基于“RPG项目01_UI面板Game”&#xff0c; 找到狼人 添加组件&#xff0c;让狼人一定区域自动跟随主角进行攻击 解释&#xff1a;【烘培蓝色】因为如果什么都不做就会被烘培成蓝色对应的功能就是 可修改区域功能 当将区域设置成不可行走状态&#xff0c;则不为蓝色 烘培&…

JSON 语法详解:轻松掌握数据结构(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【web安全】ssrf漏洞的原理与使用

前言 菜某对ssrf漏洞的总结。 ssrf的作用 主要作用&#xff1a;访问外界无法访问的内网进行信息收集。 1.进行端口扫描&#xff0c;资源访问 2.指纹信息识别&#xff0c;访问相应的默认文件 3.利用漏洞或者和payload进一步运行其他程序 4.get类型漏洞利用&#xff0c;传参数…

1.vue学习笔记(vue简介+API风格+开发前的准备)

1.介绍 1.一款用于构建用户页面的JavaScript框架 2.基于HTML、CSS、JavaScript 3.官方文档&#xff1a;cn.vuejs.org2.渐进式框架 1.注重灵活性/可被逐步集成 根据需求场景&#xff1a;1.无需构建步骤&#xff0c;渐进式增强静态的HTML2.在任何页面中作为Web Components嵌入&…

禅道v11.6 基于linux环境下的docker容器搭建的靶场

一、环境搭建 linux环境下的 在docker环境下安装禅道CMS V11.6 docker run --name zentao_v11.6 -p 8084:80 -v /u01/zentao/www:/app/zentaopms -v /u01/zentao/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 -d docker.io/yunwisdom/zentao:v11.6二、常见问题 1.删除…

HarmonyOS学习--TypeScript语言学习(二)

本章目录如下&#xff1a; 一、基础类型 二、运算符 三、变量声明 四、类型断言 五、类型推断 TypeScript支持一些基础的数据类型&#xff0c;如布尔型、数组、字符串等&#xff0c;下文举例几个较为常用的数据类型&#xff0c;我们来了解下他们的基本使用。 关于let 我们…