uniapp 微信小程序根据后端返回的文件链接打开并保存到手机文件夹中【支持doc、docx、txt、xlsx等类型的文件】

项目场景:

我们在使用uniapp官方提供的uni.downloadFile以及uni.saveFile时,会发现这个文件下载的默认保存位置和我们预想的不太一样,容易找不到,而且没有提示,那么我们就需要把文件打开自己保存并且有提示保存到哪个文件夹里这样方便我们查找


解决方案:

uniapp下载文件

用到了uniapp的两个api,不用uni.saveFile的自动保存方法,用uni.openDocument然后让用户自己点击右上角三个点自己保存方便用户后续查找

cpp 复制代码
uni.downloadFile // 下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径。
uni.openDocument // 新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx。

方法:

cpp 复制代码
// 下载文件
			oneClickDownload(url) {
				// 下载文件资源到本地
				uni.downloadFile({
					url: url, // 后端返回的线上文件路径
					success: function(res) {
						if (res.statusCode === 200) {
							//打开文档查看
							uni.openDocument({
								filePath: res.tempFilePath,
								//关键的一步,showMenu为true才会有文件右上角的三个点下载保存按钮,不写的话只能查看不能保存
								showMenu: true,
								success: function(ress) {
									console.log("成功打开文件")
								},
								fail() {
									console.log("打开文件失败")
								}
							})
						}
					}
				});
			},

使用的话直接 res.Data换成后端给的文件地址链接即可,直接调用就直接打开了文件

cpp 复制代码
this.oneClickDownload(res.Data)  

手机上运行截图:

相关推荐
css趣多多几秒前
跨域问题及Vue项目中本地/线上解决方法核心总结
前端
光影少年8 分钟前
前端 AIGC
前端·aigc
启山智软18 分钟前
供应链商城核心功能模块清单
java·前端·开源
徐同保22 分钟前
Claude Code提示词案例(开发复杂动态路由详情页面)
前端
大黄说说23 分钟前
微信商城小程序怎么弄?微信购物小程序怎么开通
微信小程序
Σdoughty26 分钟前
python第三次作业
开发语言·前端·python
是萧萧吖26 分钟前
每日一练——有效的括号
java·开发语言·javascript
gpldock22231 分钟前
Flutter App Templates Deconstructed: A 2025 Architectural Review
开发语言·javascript·flutter·wordpress
白中白1213842 分钟前
Vue系列-2
前端·javascript·vue.js
jin4213521 小时前
React Native鸿蒙跨平台完成闪屏页作为移动应用的入口级页面,实现的二手置换应用闪屏页SecondhandSplash
javascript·react native·react.js·ecmascript·harmonyos