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)
		}
	})
},
相关推荐
HashTang1 小时前
【AI 编程实战】第 7 篇:登录流程设计 - 多场景、多步骤的优雅实现
前端·uni-app·ai编程
计算机程序设计小李同学8 小时前
婚纱摄影集成管理系统小程序
java·vue.js·spring boot·后端·微信小程序·小程序
幽络源小助理11 小时前
SpringBoot+小程序高校素拓分管理系统源码 – 幽络源免费分享
spring boot·后端·小程序
Mr -老鬼11 小时前
移动端跨平台适配技术框架:从发展到展望
android·ios·小程序·uni-app
内存不泄露12 小时前
棋牌预约小程序系统论文
小程序
一颗小青松14 小时前
uniapp app端显示天气详情
uni-app
Swift社区1 天前
H5 与 ArkTS 通信的完整设计模型
uni-app·harmonyos
说私域1 天前
短视频私域流量池的变现路径创新:基于AI智能名片链动2+1模式S2B2C商城小程序的实践研究
大数据·人工智能·小程序
小溪彼岸1 天前
uni-app小白从0开发一款鸿蒙Next应用到上线
uni-app·harmonyos
毕设源码-邱学长1 天前
【开题答辩全过程】以 基于微信小程序的松辽律所咨询系统的设计与实现为例,包含答辩的问题和答案
微信小程序·小程序