当前位置: 首页 > news >正文

uniapp——App下载文件,保存、打开文件(二)

uniapp如何下载文件、保存、打开文件

时光荏苒,2024即将过去!
迈向2025,祝大家新的一年工作顺利、万事如意,少一点BUG,涨一点工资…↖(ω)↗

文章目录

    • uniapp如何下载文件、保存、打开文件
      • 下载文件
      • 保存并打开文件
      • 处理` iOS` 打开文件可能失败问题
      • 相关API返回数据格式
        • 下载成功
        • 保存文件成功
        • 拷贝目录成功

相关Api:

  • uni.downloadFile
  • uni.saveFile
  • 5+ API

下载文件

  • 通过 uni.downloadFile 结合 uni.saveFile 及 5+ Api 实现
  • 例:导出 Excel文件
downloadFile() {// 下载文件资源到本地let header = {Authorization: getToken()}uni.downloadFile({url: 'xxx/export',header,success: (res) => {console.log('下载成功:', res);if (res.statusCode === 200) {this.saveFile(res.tempFilePath);}},fail: (err) => {uni.showToast({title: '下载失败',icon: 'error'})}});
}

保存并打开文件

  • 保存文件到本地
saveFile(tempFilePath) {uni.saveFile({tempFilePath: this.fileNameEscape(tempFilePath),success: (res) => {console.log('保存文件成功:', res);// 需要保存的文件的临时路径let tempFilePath = res.savedFilePath;let fileName = `Smile_${new Date().getTime()}.xlsx`; // 目标文件名// 通过URL参数获取目录对象或文件对象plus.io.resolveLocalFileSystemURL(tempFilePath, (entry) => {plus.io.resolveLocalFileSystemURL('_doc/', (root) => {// 创建或打开当前目录下指定的文件root.getFile(fileName, {create: true}, (file) => {// 删除、拷贝目录file.remove(() => {entry.copyTo(root, fileName, (entry) => {console.log('拷贝目录成功:', entry.fullPath);// 调用第三方程序打开指定的文件plus.runtime.openFile(entry.fullPath);}, (err) => {console.log('拷贝目录失败:', err);});});}, (err) => {console.log('获取文件失败', err);});});});},fail: (err) => {console.log('保存文件失败', err);}});
}

处理 iOS 打开文件可能失败问题

  • 下载文件名中包含中文字符时会失败情况
fileNameEscape(filename) {if (uni.getSystemInfoSync().platform == "ios") {filename = escape(filename);}return filename;
},

相关API返回数据格式

下载成功
{"tempFilePath": "_doc/uniapp_temp_1735639708906/download/export.json","statusCode": 200,"errMsg": "downloadFile:ok"
}

保存文件成功
{"errMsg": "saveFile:ok","savedFilePath": "_doc/uniapp_save/17356398268860.json"
}

拷贝目录成功
/storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/doc/Smile_1735639826926.xlsx

相关文章:

uniapp——App下载文件,保存、打开文件(二)

uniapp如何下载文件、保存、打开文件 时光荏苒,2024即将过去! 迈向2025,祝大家新的一年工作顺利、万事如意,少一点BUG,涨一点工资…↖(ω)↗ 文章目录 uniapp如何下载文件、保存、打开文件下载文件保存并打开文件处理 …...

Postman接口测试05|实战项目笔记

目录 一、项目接口概况 二、单接口测试-登录接口:POST 1、正例 2、反例 ①姓名未注册 ②密码错误 ③姓名为空 ④多参 ⑤少参 ⑥无参 三、批量运行测试用例 四、生成测试报告 1、Postman界面生成 2、Newman命令行生成 五、token鉴权(“…...

【paddle】初次尝试

张量 张量是 paddlepaddle, torch, tensorflow 等 python 主流机器学习包中唯一通货变量,因此应当了解其基本的功能。 张量 paddle.Tensor 与 numpy.array 的转化 import paddle as paddle import matplotlib.pyplot as plt apaddle.to_t…...

01-2023年上半年软件设计师考试java真题解析

1.真题内容 在某系统中,类 Interval(间隔) 代表由下界(lower bound(边界))上界(upper bound )定义的区间。 要求采用不同的格式显示区间范围。 如[lower bound , upper bound ]、[ lower bound … upper bound ]、[ lower bou nd - upper bound &#x…...

一文讲清楚CSS3新特性

文章目录 一文讲清楚CSS3新特性1. 新增选择器特性2. 新增的样式3. 新增布局方式 一文讲清楚CSS3新特性 1. 新增选择器特性 层次选择器(div~p)选择前面有div的p元素伪类选择器 :first-of-type 表示⼀组同级元素中其类型的第⼀个元素:last-of-type 表示⼀组同级元素中其类型的最…...

系统设计案例:设计 Spotify

https://levelup.gitconnected.com/system-design-interview-question-design-spotify-4a8a79697dda 这是一道系统设计面试题,即设计 Spotify。在真正的面试中,你通常会关注应用程序的一两个主要功能,但在本文中,我想从高层次概述…...

太速科技-633-4通道2Gsps 14bit AD采集PCie卡

4通道2Gsps 14bit AD采集PCie卡 一、板卡概述 二、性能指标 板卡功能 参数 内容 ADC 芯片型号 AD9689 路数 4路ADC, 采样率 2Gsps 数据位 14bit 数字接口 JESD204B 模拟接口 交流耦合 模拟输入 1V 连接器 6路 SMA 输入阻抗 50Ω 模拟指…...

图片叠加拖拽对比展示效果实现——Vue版

图片叠加拖拽对比展示效果实现——Vue版 项目中遇见一个需求:2张图片按竖线分割,左右两侧分别展示对应图片,通过滚动条拖动对应展示图片区域;; 网上搜索了下,没有找到直接可用的组件,这里自己封装了一个次功…...

结合长短期记忆网络(LSTM)和无迹卡尔曼滤波器(UKF)的技术在机器人导航和状态估计中的应用前景

结合长短期记忆网络(LSTM)和无迹卡尔曼滤波器(UKF)的技术在机器人导航和状态估计中具有广泛的应用前景。如有滤波、导航方面的代码定制需求,可通过文末卡片联系作者获得帮助 文章目录 结合LSTM和UKF的背景结合LSTM和UKF的优势应用实例研究现状MATLAB代码示例结论结合LSTM和…...

【MATLAB APP Designer】小波阈值去噪(第一期)

代码原理及流程 小波阈值去噪是一种信号处理方法,用于从信号中去除噪声。这种方法基于小波变换,它通过将信号分解到不同的尺度和频率上来实现。其基本原理可以分为以下几个步骤: (1)小波变换:首先对含噪信…...

ClickHouse副本搭建

一. 副本概述 副本的目的主要是保障数据的高可用性,ClickHouse中的副本没有主从之分。所有的副本都是平等的。 副本写入流程: 二. 副本搭建 1. 实验环境 hadoop1(192.168.47.128) hadoop2(192.168.47.129)2. 修改配置文件 修改两台主机/etc/click…...

K3知识点

提示:文章 文章目录 前言一、顺序队列和链式队列题目 顺序队列和链式队列的定义和特性实际应用场景顺序表题目 链式队列 二、AVL树三、红黑树四、二叉排序树五、树的概念题目1左子树右子树前序遍历、中序遍历,后序遍历先根遍历、中根遍历左孩子右孩子题目…...

cocos creator 3.x版本如何添加打开游戏时首屏加载进度条

前言 项目有一个打开游戏时添加载入进度条的需求。这个功能2.X版本是自带的,不知为何在3.X版本中移除了。 实现 先说一下解决思路,就是在引擎源码加载场景的位置插入一个方法,然后在游戏入口HTML处监听即可。 1.找到对应源码脚本 在coco…...

Fama MacBeth两步法与多因子模型的回归检验

Fama MacBeth两步法与多因子模型的回归检验 – 潘登同学的因子投资笔记 本文观点来自最近学习的石川老师《因子投资:方法与实践》一书 文章目录 Fama MacBeth两步法与多因子模型的回归检验 -- 潘登同学的因子投资笔记 多因子回归检验时序回归检验截面回归检验Fama–…...

IDEA 搭建 SpringBoot 项目之配置 Maven

目录 1?配置 Maven 1.1?打开 settings.xml 文件1.2?配置本地仓库路径1.3?配置中央仓库路径1.4?配置 JDK 版本1.5?重新下载项目依赖 2?配置 idea 2.1?在启动页打开设置2.2?配置 Java Compiler2.3?配置 File Encodings2.4?配置 Maven2.5?配置 Auto Import2.6?配置 C…...

node.js之---事件循环机制

事件循环机制 Node.js 事件循环机制(Event Loop)是其核心特性之一,它使得 Node.js 能够高效地处理大量并发的 I/O 操作。Node.js 基于 非阻塞 I/O,使用事件驱动的模型来实现异步编程。事件循环是 Node.js 实现异步编程的基础&…...

Python OpenAI 库开发指南:从入门到实战精通

在人工智能(AI)领域,OpenAI无疑是全球最受瞩目的机构之一。它推出的GPT系列模型、DALLE等创新技术,正在深刻改变各行各业。作为Python开发者,我们该如何快速上手并高效利用OpenAI的API,成为了提升个人竞争力…...

flash-attention保姆级安装教程

FlashAttention安装教程 FlashAttention 是一种高效且内存优化的注意力机制实现,旨在提升大规模深度学习模型的训练和推理效率。 高效计算:通过优化 IO 操作,减少内存访问开销,提升计算效率。 内存优化:降低内存占用…...

送给一年编程道路的自己

回望过去一年在编程道路上的成长与收获,是一个很有意义的过程。总结自己这一年的编程经历,不仅可以帮助你更清晰地了解自己的进步和不足,还能为未来的发展指引方向。以下是一些可能的收获,供你参考: 1. 技能提升 语言…...

LeRobot(1)

Train python lerobot/scripts/train.py \ policyact \ envaloha \ env.taskAlohaInsertion-v0 \ dataset_repo_idlerobot/aloha_sim_insertion_human \ load_data一直报错,忘记截图了,反正是ssh报错,下不下来,网…...

【uniapp】(6) uniapp中使用vuex

uniapp内置了vuex,不需要通过npm重新安装,直接引用即可1、创建 Vuex Store(1)在uniapp项目根目录下创建 store/index.jsimport Vue from vue import Vuex from vuexVue.use(Vuex)const store new Vuex.Store({//存放状态state: …...

5步掌控UEFI启动画面定制:HackBGRT终极实践指南

5步掌控UEFI启动画面定制:HackBGRT终极实践指南 【免费下载链接】HackBGRT Windows boot logo changer for UEFI systems 项目地址: https://gitcode.com/gh_mirrors/ha/HackBGRT 一、直面启动画面定制的三大痛点 在数字化时代,个性化已成为用户…...

NormalMap-Online终极指南:在浏览器中免费生成专业法线贴图

NormalMap-Online终极指南:在浏览器中免费生成专业法线贴图 【免费下载链接】NormalMap-Online NormalMap Generator Online 项目地址: https://gitcode.com/gh_mirrors/no/NormalMap-Online 还在为3D模型缺乏表面细节而烦恼吗?NormalMap-Online是…...

FireRedASR Pro开箱即用:基于Streamlit的交互界面,操作超直观

FireRedASR Pro开箱即用:基于Streamlit的交互界面,操作超直观 1. 工具概览与核心优势 FireRedASR Pro是一款基于工业级语音识别模型开发的本地化工具,特别适合需要快速部署语音转文字功能的开发者和研究者。与传统的ASR解决方案相比&#x…...

华大HC32F460串口DMA接收与超时中断的实战配置

1. 华大HC32F460串口DMA接收与超时中断的核心价值 在嵌入式开发中,串口通信是最基础也最常用的功能之一。传统串口接收方案通常有两种:一种是每个字节都触发中断,另一种是DMA接收配合定时器断帧。第一种方案会频繁打断主程序执行,…...

从Simulink仿真到硬件实现:DAB双有源全桥的PID参数‘手感’如何传递?

从虚拟到现实:DAB双有源全桥PID参数迁移实战指南 当你在Simulink中看到完美的DAB动态响应波形时,那种成就感就像解开一道复杂的数学题。但现实往往给你当头一棒——同样的PID参数烧录到DSP后,示波器上的波形却像喝醉了一样东倒西歪。这不是你…...

OpenClaw安全实践:gemma-3-12b-it本地化保障敏感数据边界

OpenClaw安全实践:gemma-3-12b-it本地化保障敏感数据边界 1. 为什么需要本地化部署? 去年处理季度财报时,我犯过一个至今心有余悸的错误。当时用某公有云API自动分析Excel中的财务数据,结果在调试时不小心把包含客户银行账号的测…...

OpenClaw技能开发:为千问3.5-9B编写自定义自动化模块

OpenClaw技能开发:为千问3.5-9B编写自定义自动化模块 1. 为什么需要自定义技能? 去年冬天,当我第一次尝试用OpenClaw自动化处理日报时,发现现有的技能库无法满足我的特殊需求——需要从Jira提取数据后,自动生成符合团…...

CUDA12.4环境适配:OpenClaw调用Qwen3-14B镜像的驱动配置详解

CUDA12.4环境适配:OpenClaw调用Qwen3-14B镜像的驱动配置详解 1. 为什么需要关注CUDA环境适配 上周我在本地部署Qwen3-14B镜像时,遇到了一个典型问题:模型加载到一半突然崩溃,控制台只留下一行模糊的CUDA错误提示。经过两天排查才…...

想搞懂AI智能体?小白也能看懂的四大核心模块,速收藏!

想搞懂AI智能体到底是怎么工作的?其实不用死磕复杂的技术文档,今天就用通俗的话,把它的核心架构拆明白,新手也能轻松看懂。 不管是我们常听说的LLM(大语言模型)驱动的智能体,还是各类自主决策AI…...