微搭低代码入门05文件的上传和下载

目录

  • 1 创建数据源
  • 2 创建应用
  • 3 创建页面
  • 4 设置导航功能
  • 5 文件上传
  • 6 文件下载
  • 总结

小程序中,我们通常会有文件的上传和下载的需,在微搭中,文件是存放在云存储中,每一个文件都会有一个唯一的fileid,我们本篇就介绍如何通过fileid来实现文件的上传和下载。

1 创建数据源

传统开发对于文件的上传和下载可能需要考虑文件的IO,需要先创建文件,然后通过流进行写入,读取的时候也是通过流进行读取。

低代码的话没有那么复杂,我们的文件是借助数据源来完成的。打开控制台,点击数据模型,点击新建,我们先创建一个数据源
在这里插入图片描述
输入数据源的名称,附件上传,点击创建
在这里插入图片描述
点击编辑创建字段
在这里插入图片描述
输入字段名称附件,字段类型选择文件
在这里插入图片描述
点击保存就完成了数据源的创建

2 创建应用

微搭不需要你写额外的代码实现文件的上传,我们使用表单容器即可。点击应用,点击新建应用,创建一个空白应用
在这里插入图片描述
在这里插入图片描述

3 创建页面

在应用编辑器的左上角点击新建页面的图标,新建两个页面,分别是附件上传和附件下载
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 设置导航功能

像这种有多个页面的,我们可以通过宫格导航来进行页面的跳转,从右侧的组件库里选择宫格导航,拖入到编辑区
在这里插入图片描述
选中宫格导航,设置导航设置,将菜单改为文件上传和文件下载,选择具体的页面
在这里插入图片描述
在这里插入图片描述

5 文件上传

切换到文件上传的页面,从右侧的组件库添加表单容器到编辑区
在这里插入图片描述
数据模型选择附件上传
在这里插入图片描述
上传成功后,我们需要返回首页,选择组件内置方法等6个事件
在这里插入图片描述
在表单提交成功时增加一个事件,动作选择返回上一页
在这里插入图片描述

6 文件下载

切换到文件下载页面,添加数据列表组件到编辑区
在这里插入图片描述
数据模型选择附件上传
在这里插入图片描述
我们需要处理一下字段的显示,第一个文本组件绑定的内容,我们要用表达式提取出文件名来
在这里插入图片描述
输入如下表达式

$w.item_listView1.fj.split('/').pop().replace(' ', '_').split('-').pop()

图标改成下载的图标
在这里插入图片描述
点击图标的时候要执行下载,在代码区新建一个javascript方法
在这里插入图片描述
在JavaScript代码中输入如下代码

export default async function({event, data}) {  // 假设 data.target 是一个文件的云存储路径或其他有效的下载URL  const tempfile = await $w.cloud.getTempFileURL(data.target)const downloadTask = wx.downloadFile({  url: tempfile, // 文件的下载链接  success: function(res) {  if (res.statusCode === 200) {  // 获取文件系统的管理器  const fsManager = wx.getFileSystemManager();  // 文件的保存路径(自定义路径,确保该目录存在)  const saveFilePath = wx.env.USER_DATA_PATH + '/'+data.target.split('/').pop().replace(' ', '_').split('-').pop();  // 保存文件到本地  fsManager.saveFile({  tempFilePath: res.tempFilePath, // 临时文件路径  filePath: saveFilePath, // 本地文件路径  success: function(res) {  // 保存成功后的操作  console.log('文件已保存到本地:', res.savedFilePath);  $w.utils.showToast({  title: '下载成功',  icon: 'success',  duration: 2000,  });  },  fail: function(err) {  // 保存失败后的操作  console.error('保存文件失败:', err);  $w.utils.showToast({  title: '下载失败',  icon: 'none',  duration: 2000,  });  }  });  }  },  fail: function(err) {  // 下载失败后的操作  console.error('下载文件失败:', err);  $w.utils.showToast({  title: '下载失败',  icon: 'none',  duration: 2000,  });  }  });  }

在给图标定义点击事件的时候,需要传入参数
在这里插入图片描述
在这里插入图片描述
可以看到,微搭中附件是按照路径存储的,我们在下载的时候,先需要将路径换成临时地址就是一个互联网的访问地址

const tempfile = await $w.cloud.getTempFileURL(data.target)

有了这个地址,我们先调用downloadFile方法将文件下载到小程序的临时目录,然后再构造一个目录,将文件真实存储起来

比较难受的是,下载的文件并不会存放到你的手机的一个目录里,因此也就无法直接打开

这个时候需要结合wx.openDocument进行打开显示,要不然用户看到下载成功却无法找到就很难受,但是openDocument只支持几种格式doc、xls、ppt、pdf,所以在规划功能的时候是需要考虑一下的。

总结

我们本篇带着大家实现了一下文件的上传和下载功能,上传我们使用现成的组件实现,下载需要结合小程序的API去调用,还需要注意一些潜在的限制。要是H5的话我们就不需要这么麻烦,有了临时链接直接打开地址就可以实现下载功能了。

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

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

相关文章

农药生产厂污废水如何处理达标

农药生产厂的污废水处理是确保该行业对环境的负面影响最小化的重要环节。下面是一些常见的处理方法和步骤,可以帮助农药生产厂的污废水达到排放标准: 预处理:将废水进行初步处理,去除大颗粒悬浮物和固体残渣。这可以通过筛网、沉淀…

ArthasGC日志GCeasy详解

Arthas详解 Arthas是阿里巴巴在2018年9月开源的Java诊断工具,支持JDK6,采用命令行交互模式,可以方便定位和诊断线上程序运行问题.Arthas官方文档十分详细.详见:官方文档 Arthas使用场景 Arthas使用 # github下载arthas wget https://alibaba.github.io/arthas/arthas-boot.j…

C++例题:大数运算---字符串相加(使用数字字符串来模拟竖式计算)

1.代码速览 class Solution2 { public:string addStrings(string num1, string num2){//end1和end1是下标int end1 num1.size() - 1;int end2 num2.size() - 1;string str;//下标(指针)从后向前走,走到头才可以结束,所以是end>0int next 0;while (end1 > 0 || end2 &…

ADS基础教程9-理想模型和厂商模型实现及对比

目录 一、概要二、厂商库使用1.新建cell2.调用厂商库中元器件3.元器件替换及参数选择4.完成参数选择5.导入子图 三、仿真实现注意事项 一、概要 本文将介绍在ADS中调用厂商提供的库,来进行原理图仿真,并实现与ADS系统提供的理想元器件之间的比较。 二、…

触摸OpenNJet,感悟云原生

小程一言 云原生使得应用充分利用云计算、容器化和微服务架构等现代技术来构建和运行应用程序。 云原生技术的用处在于提高应用程序的可靠性、可伸缩性和灵活性,加快开发和部署速度,降低成本,提升整体的效率和竞争力。通过采用云原生技术&a…

SpringBoot+Vue+Element-UI实现协同过滤算法商品推荐系统

前言介绍 本次设计任务是要设计一个基于协同过滤算法的商品推荐系统,通过这个系统能够满足商品推荐系统的管理功能。系统的主要包括首页,个人中心,用户管理,商品类型管理,商品信息管理,系统管理&#xff0…

LabVIEW航空发动机主轴承试验器数据采集与监测

LabVIEW航空发动机主轴承试验器数据采集与监测 随着航空技术的迅速发展,对航空发动机性能的测试与监测提出了更高的要求。传统的数据采集与监测方法已难以满足当前高精度和高可靠性的需求,特别是在主轴承试验方面。基于LabVIEW的航空发动机主轴承试验器…

小工具 - 用Astyle的DLL封装一个对目录进行代码格式化的工具

文章目录 小工具 - 用Astyle的DLL封装一个对目录进行代码格式化的工具概述笔记效果编译AStyle的DLL初次使用接口的小疑惑测试程序 - 头文件测试程序 - 实现文件测试程序 - RC备注END 小工具 - 用Astyle的DLL封装一个对目录进行代码格式化的工具 概述 上一个实验(vs2019 - ast…

移动机器人系统与技术:自动驾驶、移动机器人、旋翼无人机

这本书全面介绍了机器人车辆的技术。它介绍了道路上自动驾驶汽车所需的概念。此外,读者可以在六足机器人的构造、编程和控制方面获得宝贵的知识。 这本书还介绍了几种不同类型旋翼无人机的控制器和空气动力学。它包括各种旋翼推进飞行器在不同空气动力学环境下的模…

ComfyUI 基础教程(十三):ComfyUI-Impact-Pack 面部修复

SD的WebUI 中的面部修复神器 ADetailer,无法在ComfyUI 中使用。那么如何在ComfyUI中进行面部处理呢?ComfyUI 中也有几个面部修复功能,比如ComfyUI Impact Pack(FaceDetailer),以及换脸插件Reactor和IPAdapter。 ComfyUI-Impact-Pack 是一个功能强大的插件,专为 ComfyUI …

大模型_基于医疗领域用lora微调ChatDoctor模型

文章目录 ChatDoctor目标方法结果结论收集和准备医患对话数据集创建外部知识数据库具有知识大脑的自主聊天医生的开发模型培训结果数据和模型: 微调推理 ChatDoctor 目标 这项研究的主要目的是通过创建一个在医学建议中具有更高准确性的专业语言模型,来…

STM32入门_江协科技_3~4_OB记录的自学笔记_软件安装新建工程

3. 软件安装 3.1. 安装Keil5 MDK 作者的资料下载的连接如下:https://jiangxiekeji.com/download.html#32 3.2. 安装器件支持包 因为新的芯片层出不穷,所以需要安装Keil5提供的器件升级版对软件进行升级,从而支持新的芯片;如果不…

FastDFS - 无法获取服务端连接资源:can‘t create connection to/xx.xx.xx.xx:0

问题描述 根据官方文档 安装完FastDFS服务器后, 服务正常启动,但是在 SpringBoot 项目使用 fastdfs-client 客户端报错无法获取服务端连接资源:cant create connection to/xx.xx.xx.xx:0, 一系列排查发现是获取到的 tracker 端口为 0 。 co…

第78天:WAF攻防-菜刀冰蝎哥斯拉流量通讯特征绕过检测反制感知

目录 案例一: 菜刀-流量&绕过&特征&检测 菜刀的流量特征 案例二:冰蝎-流量&绕过&特征&检测 冰蝎使用教程 冰蝎的流量特征 案例三: 哥斯拉-流量&绕过&特征&检测 哥斯拉使用教程 哥斯拉的流量特征…

产业观察:电机驱动成为人形机器人的动力核心

前不久,波士顿动力发布一则“再见,液压Atlas”视频,宣告其著名的液压驱动双足人形机器人Atlas正式退役。这则视频引起全球所有Atlas粉丝的高度关注。然而紧接着,波士顿动力便又推出了全部由电机驱动的新一代Atlas机器人&#xff0…

[基础] Unity Shader:顶点着色器(vert)函数

顶点着色器(Vertex Shader)是图形渲染的第一个阶段,它的输入来自于CPU。顶点着色器的处理单位是顶点,CPU输入进来的每个顶点都会调用一次顶点着色器函数,也就是我们在Shader代码里所定义的vert函数。本篇我们将会通过顶…

24.5.5(离散化+树状数组,线段树)

星期一: dp题单 背包 第四题 混可乐 cf传送门 思路:条件可演化为每种可乐值为 ai-n,选最少的可乐使总和为0(具体可看官方题解 到这会发现背包并不适合了,其实这是道bfs伪装的背包…

[C++][数据结构]二叉搜索树:介绍和实现

二叉搜索树 概念 二叉搜索树又称二叉排序树,它是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也…

autoware.auto 安装 ROS2

先进行docker安装 sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [archamd64] https://download.docker.com/linux/u…

Hass哈斯数控数据采集网络IP配置设置

机床数据采集(MDC)允许你使用Q和E命令通过网络接口或选项无线网络从控制系统提取数据。设置143支持该功能,并且指定控制器使用这个数据端口。MDC是一个需要一台附加计算机发送请求,解释说明和存储机床数据的软件功能。这个远程计算…