【微信小程序】使用云存储存入指定文件夹

news2025/7/12 11:55:29

前言

在我们开发微信小程序的时候常会用到云开发的功能,它相比传统的SQL上手难度低,比较适合没有什么后端基础的开发者使用。在具体的项目需求中我们会让用户上传一些图片或者表格,随着用户量增大,文件类型增多,云存储分类显得尤其重要。下面我举一个例子来带大家体会一下~

例:在图一的页面中需要用户提交三份文件,若是没有文件分类则会像图二那样

图一(每个用户需要提交三个文件)

图二(云存储里文件分布十分混乱)


实现存入指定文件夹

1.不妨我们将这三类文件分个类他们分别是satifactionSurvey\ fund\ activity's file(如图三)

图三

2.我们在wxml中使用button组件并绑定一个点击函数chooseFile和携带一个参数type

<text class="subtitle_font">
     2.满意度调查情况:
</text>
<button bindtap="chooseFile" class='shangchuan' data-type="sati">上传附件调查表</button>

<text class="subtitle_font">
     3.项目资金实际情况:
</text>
<button bindtap="chooseFile" class="shangchuan" data-type="fund">附件细项<text>*</text>
</button>

<text class="subtitle_font">
4.活动文件(申报书,总结表,备忘录):
</text>
<button bindtap="chooseFile" class='shangchuan' data-type="acti">上传活动文件表
</button>

3.之后在JS文件中运用到一点点的技巧来减少代码冗余(简单的if判断)

Page({
       data: {
       type:"",
       .....
       },

       onLoad(option){
              console.log("列表所携带的信息",option)
              id = option.id
              wx.cloud.database().collection("summaries")
      },
      //第一步:选择文件
       chooseFile(e){
       console.log("需要上传的文件类型是",e.currentTarget.dataset.type)
       this.setData({
              type:e.currentTarget.dataset.type
       })
       let that = this
       wx.chooseMessageFile({
         count: 1,
         type: 'all',
         success (res) {
           // tempFilePath可以作为img标签的src属性显示图片
           const tempFilePaths = res.tempFiles
           let tempFile = tempFilePaths[0]
           that.uploadFile(tempFile.name,tempFile.path)
         }
       })
     },
     //第二步:通过uploadFile上传选中的文件
       uploadFile(fileName,tempFile){
       if(this.data.type == "sati"){
              console.log("将要执行sati代码")
              wx.cloud.uploadFile({
                     cloudPath:"satifactionSurvey/"+fileName,
                     filePath:tempFile,
                   })
              .then(res=>{
              console.log("上传成功啦",res);
              wx.showToast({
                     title: '文件上传成功',
                     icon:"success",
                     duration:2000
              })
              })
              .catch(err=>{
              console.log("上传失败啦",err);
              })
       }
       if(this.data.type == "fund"){
              console.log("将要执行fund代码")
              wx.cloud.uploadFile({
                     cloudPath:"fund/"+fileName,
                     filePath:tempFile,
                   })
              .then(res=>{
              console.log("上传成功啦",res);
              wx.showToast({
                     title: '文件上传成功',
                     icon:"success",
                     duration:2000
              })
              })
              .catch(err=>{
              console.log("上传失败啦",err);
              })
       }
       if(this.data.type == "acti"){
              console.log("将要执行acti代码")
              wx.cloud.uploadFile({
                     cloudPath:"activity's file/"+fileName,
                     filePath:tempFile,
                   })
              .then(res=>{
              console.log("上传成功啦",res);
              wx.showToast({
                     title: '文件上传成功',
                     icon:"success",
                     duration:2000
              })
              })
              .catch(err=>{
              console.log("上传失败啦",err);
              })
       }
     },

注意:在这里cloudPath就指的是你云存储的路径记得要用双引号括起来(图四),并且前面很长很长的字符串是不需要写进来的(图五)。

图四,存入指定文件的方法

图五,红框这一大窜字符是不用加入到路径里面的

在你完成上诉步骤后,就能实现比较高效的存入云存储了,并且还能分类得到,避免了文件过多而查找不到的方法。除此之外你还可以根据自己的喜好来给各个子文件分类(如图六2月份、3月份的fund之类)

图六,给每个子文件又分日期


结语

如果有疑问欢迎大家留言讨论,你如果觉得这篇文章对你有帮助可以给我一个免费的赞吗?我们之间的交流是我最大的动力!

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

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

相关文章

张驰咨询2023年企业如何活下去、甚至有效增长?

2023年企业活下去和有效增长的关键在于适应和应对不断变化的市场和环境。以下是几点建议&#xff1a; 数字化转型&#xff1a;随着数字化的普及&#xff0c;企业需要加快数字化转型&#xff0c;提高数字化技术的应用水平。这样可以提高企业的生产效率、管理效率和创新能力。 …

2023年谷歌seo排名优化指南

本文主要分享2023年关于谷歌排名机制变化以及如何提升谷歌排名的一些方法。 本文由光算创作&#xff0c;有可能会被剽窃和修改&#xff0c;我们佛系对待这种行为吧。 2023年&#xff0c;谷歌搜索引擎对于SEO的优化策略已经发生了一些变化&#xff0c;要想保持网站在谷歌搜索中…

Javaweb之mybits入门

2.1 Mybatis概述 2.1.1 Mybatis概念 MyBatis 是一款优秀的持久层框架&#xff0c;用于简化 JDBC 开发 MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code&#xff0c;并且改名为MyBatis 。2013年11月迁移到Github …

挣值管理案例讲解

一、概念1.挣值管理是一种综合了范围、时间、成本绩效测量的方法。通过与计划完成的工作量、实际挣得的收益、实际的成本进行比较&#xff0c;可以确定成本、进度是否按计划进行。挣值管理可以在项目某一特定时间点上&#xff0c;从达到范围、时间、成本三项目标上评价项目所处…

1.2 学习环境准备

文章目录1.MariaDB简介2.MariaDB服务端和客户端安装1.MariaDB简介 因为MariaDB作为MySQL的延申&#xff0c;其包含MySQL所有的有点&#xff0c;并且其包含了更丰富的特性。比如微秒的支持、线程池、子查询优化、组提交、进度报告等&#xff1b; 所以我们接下来将已MariaDB作为…

TCP多线程并发IO阻塞服务模型

1. 多进程并发服务器 在 Linux 环境下多进程的应用很多,其中最主要的就是网络/客户服务器。多进程服务器是当客户有请求时,服务器用一个子进程来处理客户请求。父进程继续等待其它客户的请求。这种方法的优点是当客户有请求时,服务器能及时处理客户,特别是在客户服务器交互…

狂神说:流程控制——顺序选择循环结构

System.out.println(10) // 输出带回车 System.out.print(10) // 输出没有回车一、顺序机构挨个往下写&#xff0c;就是最基本的顺序结构二、选择结构 if、switchif单选择结构虽然简单&#xff0c;但也挺经常用的Scanner scanner new Scanner(System.in); // 和下面的…

毕业后想从事软件测试,现在需要学习哪些内容呢

在你选择学习之前&#xff0c;要先考虑一下这个是不是你喜欢的发展方向&#xff0c;而不是只听别人推荐就直接做了选择先了解下软件测试是做什么的以及未来发展前景&#xff0c;最后才是如何自学 软件测试就是在测试这个软件是不是能够完全按照需求运行。软件测试岗再简单点说…

基于JAVAWEB的出租车管理系统

摘要在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括出租车管理系统的网络应用&#xff0c;在国外出租车管理已经是很普遍的方式&#xff0c;不过国内的出租车管理可能还处于起步阶段。出租车管理系统具有出租、归还等功能。…

分布式之如何突破raft集群写数据性能瓶颈

写在前面 在分布式之Raft共识算法分析 一文中我们分析了当前比较常用的raft共识算法&#xff0c;通过raft算法我们可以很容易搭建集群并选举leader&#xff0c;然后由leader负责数据的写操作&#xff0c;这样也可以很容易的解决数据一致性的问题&#xff0c;但是只由leader来处…

C# 表达式树

lambda作为实现表达式树的一种方式&#xff0c;在开始学习表达式树之前&#xff0c;需要对lambda进行一些了解 表达式lambda&#xff0c;定义&#xff1a; (input-parameters) > expression 语句lambda&#xff0c;定义&#xff1a; (input-parameters) > { <sequen…

简单一招教你给大量视频添加srt字幕

很多小伙伴们在剪辑视频的同时需要给视频的画面中添加上srt字幕&#xff0c;那在有很多视频都要添加字幕的时候&#xff0c;就非常的费时&#xff0c;今天小编就给大家分享一个可以批量给大量视频添加srt字幕的简单方法&#xff0c;有需要的小伙伴可以进来看看具体步骤哦&#…

highlight.js高亮npm安装常见问题

目录 安装 highlight.js 安装 vue-highlightjs 安装highlightjs/vue-plugin main.js配置 最近在写低代码&#xff0c;有需求类似编辑器功能&#xff0c;实现代码高亮&#xff0c;然后用到了highlight.js&#xff0c;就整理一下。 官网链接直达 highlight.js 中文文档 安装 h…

calico-kube-controllers 启动失败处理

故障描述calico-kube-controllers 异常&#xff0c;不断重启日志信息如下2023-02-21 01:26:47.085 [INFO][1] main.go 92: Loaded configuration from environment config&config.Config{LogLevel:"info", WorkloadEndpointWorkers:1, ProfileWorkers:1, PolicyW…

java在Excel中添加png图片作为页眉(已解决)

1.背景 Excel在打印的时候需要附带水印打出&#xff0c;水印需要在下载Excel文件时就设置好 需要在打印的时候打印出水印&#xff0c;使用添加背景添加的水印在打印的时候不会出现&#xff0c;只有设置页眉&#xff0c;并将页眉设置为一长与打印纸张一样大小的图片&#xff0c…

Objective-C 字符串拼接函数 多个不同类型的参数拼接到一个字符串 类似于Java中 String.format()方法的原生API

总目录 iOS开发笔记目录 从一无所知到入门 文章目录需求ScreenshotCodeOutput需求 我有多个参数(类型也许不同)&#xff0c;需要拼接到一个字符串中。 在Java中有String.format()方法可以做到一次性格式转换。 在Objective-C中呢&#xff1f;也有具有类似功能的API&#xff1a…

从0探索NLP——导航帖

从0探索NLP——导航帖 人工智能是一个定义宽泛、知识组成复杂的领域&#xff0c;而NLP是人工智能领域中的一类任务&#xff0c;他在哪呢&#xff1f;Emmmmm~不能说都有涉猎只能说全都都沾点&#xff1a; 每次想要针对NLP的某一点进行讲解时&#xff0c;不讲那写细枝末节&…

【Git】Git下载安装与使用(一)

目录 1. 前言 1.1 什么是Git 1.2 使用Git能做什么 2. Git概述 2.1 Git简介 2.2 Git下载与安装 3. Git代码托管服务 3.1 常用的Git代码托管服务 3.2 码云代码托管服务 1. 前言 1.1 什么是Git Git是一个分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码…

多线程知识点

多线程 基本知识 创建线程的常用三种方式&#xff1a; 继承Thread类实现Runnable接口实现Callable接口&#xff08;JDK1.5>&#xff09; public class ThreadTest extends Thread {Overridepublic void run() {System.out.println(this.getName() "..开始.."…

国内动漫绘画培训班盘点

动漫培训机构哪家好&#xff1f;动漫培训班是一种有效的提升动漫水平的方式&#xff0c;可以帮助学生提高绘画技巧和技能&#xff0c;更好地表达自己的艺术想法。 一&#xff1a;动漫培训班排名 1、轻微课&#xff08;五颗星&#xff09; 主打课程有日系插画、游戏原画、古风插…