uniapp微信小程序下载文件,保存文件功能总结

//通用下载文件方法
const	download = (attachLink) => {
	let that = this
	uni.downloadFile({
		url: attachLink , //下载地址,后端接口获取的链接
		success: (data) => {
			console.log(data.tempFilePath)
			console.log(JSON.stringify(data))
			if (data.statusCode === 200) {
				uni.saveFile({ //文件保存到本地
					tempFilePath: data.tempFilePath, //临时路径
					success: function(res) {
						console.log("下载成功"+res.savedFilePath)
						console.log(JSON.stringify(res))
						uni.showToast({
							icon: 'none',
							mask: true,
							title: '文件已保存!', 
							duration: 3000,
						});
						uni.openDocument({
							//fileType: 'docx',
							showMenu:true, //关键点,可以转发到微信
							filePath: res.savedFilePath,
							success: function(res) {
								console.log('打开文档成功');
							}
						});
					}
				});
			}
		},
		fail: (err) => {
			console.log(err);
			uni.showToast({
				icon: 'none',
				mask: true,
				title: '失败请重新下载',
			});
		},
	});
}

先使用下载文件api把文件下载下来,再使用wx.openDocument() 打开文件里面加上showMenu字段,然后就可以看到在打开的文件右上角出现了···,就可以转发了
在这里插入图片描述
转载 https://blog.csdn.net/qq_37131884/article/details/123360114

### 实现文件下载功能UniApp 微信小程序中实现文件下载功能涉及多个 API 的组合使用。具体来说,`uni.downloadFile()` 用于从服务器获取文件并将其存储为临时文件路径;而 `uni.openDocument()` 则负责打开这些已下载文件,并允许用户进一步处理它们。 对于希望提供更友好用户体验的应用程序而言,在调用 `uni.openDocument()` 方法时还可以通过设置参数中的 `showMenu=true` 来显示更多选项给最终使用者,比如转发等功能[^1]。 #### 下载与打开文档的具体代码示例: ```javascript // 定义要下载的目标URL const targetUrl = 'https://example.com/path/to/file.pdf'; // 使用 downloadFile 进行网络请求来获得资源 uni.downloadFile({ url: targetUrl, success: function (res) { const filePath = res.tempFilePath; // 成功接收到响应后尝试打开该文件 uni.openDocument({ filePath: filePath, showMenu: true, // 显示菜单栏以便于分享等操作 success: function () { console.log('成功打开了文档'); }, fail: function (err) { console.error('未能正常打开文档:', err); } }); }, fail: function (error) { console.error('无法完成文件下载:', error); } }); ``` 此段 JavaScript 代码展示了如何利用上述提到的方法链式调用来达成目的——即先执行一次 HTTP GET 请求以取得目标文件的数据流形式表示,之后再依据所得结果决定下一步行动(此处指代的是展示所加载的内容)。值得注意的是,当涉及到不同类型媒体对象(如图像)时,则应考虑采用不同的策略来进行预览或直接保存至设备相册内[^4]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值