uniapp开发小程序,导出文件打开并保存,实现过程downloadFile下载,openDocument打开

uniapp开发小程序,导出文件打开并保存

实现思路

1、调用请求获取到后端接口返回的下载文件的url路径 (注意必须是https的路径,域名需要配置在微信小程序后台的合法域名里面)

2、使用 uni.downloadFile 方法 (下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径。)

3、使用 uni.openDocument(OBJECT)方法

新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx。

建议给用户添加一句提示,下载下来的文件会自动打开

复制代码
// html
<view class="submitBtn btn" @click="submitExport">导出</view>


submitExport(){
	uni.showModal({
		content:"导出的Excel文件将自动打开,请点击右上角"更多"选择保存",
		title:"温馨提示",
		success(res) {
			if(res.confirm){
				this.export()
			}
		}
	})
},
export(){
// 请求用自己项目的封装请求,我这用了我自己项目的
	this.$http.mallbusiness({
		url: "写自己后端给的接口",
			data: this.queryString,
			type: "queryString",
		}).then(res => {
		if (res.code == 200) {
			uni.downloadFile({
				url: res.data,
				success: (downloadRes) => {
					console.log(downloadRes,"downloadRes")
					if (downloadRes.statusCode === 200) {
						// 文件临时路径
						const tempFilePath = downloadRes.tempFilePath;
						
						//打开文件
						uni.openDocument({
							filePath: tempFilePath,
							showMenu: true,
							success: () => {
								this.$u.toast("导出成功!");
								this.exportClose()
							},
							fail: (err) => {
								console.error('打开文件失败', err);
								this.$u.toast("文件已下载,但无法打开");
							}
						});
					} else {
						this.$u.toast("下载失败,请重试");
					}
				},
				fail: (err) => {
					console.error('下载文件失败', err);
					this.$u.toast("下载失败,请重试");
				},
				complete: () => {
					uni.hideLoading();
				}
			});
		} else {
			this.$u.toast(res.message)
		}
	})
},
相关推荐
结网的兔子15 小时前
【前端开发】Web端迁移至 uni-app 及鸿蒙扩展方案对比
前端·uni-app·harmonyos
2501_9159090615 小时前
iOS 应用反调试技详解术 检测调试器的原理与防护实践
android·ios·小程序·https·uni-app·iphone·webview
AI多Agent协作实战派18 小时前
AI多Agent协作系统实战(二十八):顶栏统一战争——从1个页面异常到31个页面全量对齐
数据库·人工智能·uni-app
00后程序员张18 小时前
iOS加固技术路线全面解析:Bitcode模式、源码模式与汇编模式对比及爱加密优势
android·汇编·ios·小程序·uni-app·cocoa·iphone
海纳百川·纳海川18 小时前
租房行业数字化:换个思路解决“老问题”
大数据·微信小程序·小程序
上海云盾-小余1 天前
CC 高频请求 + DDoS 流量攻击实战防御:全链路 WAF 流量清洗部署完整流程
网络·爬虫·安全·小程序·ddos
2501_916008891 天前
iOS IPA文件反编译与打包操作方法,拆包分析防护和加固打包
android·macos·ios·小程序·uni-app·cocoa·iphone
2301_810313181 天前
海外教育APP定制发展现状与开发选型核心要点解析
小程序·团队开发·软件需求
name好难取诶2 天前
通过对云基座和离线基座的对比,帮助开发者理解如何在不同场景下选择合适的打包方案。 什么是“基座” 在 UniApp 中,基座(也称“ ...
开发语言·uni-app·php
2501_915921432 天前
iOS手游安全反外挂解决方案:基于Xcode的加固混淆特色详解
android·安全·ios·小程序·uni-app·iphone·xcode