uni项目中如何实现微信小程序文件下载(包会)

在h5端我一般使用window.location.href='url’下载一些文件
但是当项目编译到微信小程序中该方法不能使用,于是在翻阅微信小程序官方文档后总结了一下微信小程序的文件下载的方法
一.首先需要准备一下所要使用的微信小程序的API:
1.wx.downloadFile(Object object) 用来下载服务器文件
2.FileSystemManager.saveFile(Object object) 用来保存下载的文件
3.wx.openDocument(Object object) 用来打开下载的文件
二.然后是文件下载的大致流程:
首先是下载所需要的文件,然后会被保存在临时路径,此时需要将文件保存的本地路径中,最后就是打开改文件,打开改文件后该文件的右上角会有常用的设置按钮(保存到本地,选择其他应用打开等)。可根据自己的需求更改流程,这里只是提供一个思路。
三.示例代码

				var _this = this
				//获取微信的FileSystemManager
				var wxFile = wx.getFileSystemManager()
				wx.downloadFile({
					//服务器上的文件地址
					url: `${locals}/api/file/template/a.docx`,
					//根据自己需求可加可不加token
					header: {
						"token": uni.getStorageSync("token")
					},
					success(res) {
						//此时服务器的文件会被下载到本地的临时路径中,可以打开但是改文件的文件名是随机的
						var filePaths = res.tempFilePath;
						wxFile .saveFile({
							tempFilePath:filePaths,
							//将该文件从临时路径tempFilePath转移到本地文件filePath中,并重新给他起一个文件名
							filePath:`${wx.env.USER_DATA_PATH}/a.docx`,
							success(res1){
								//此时可调用openDocument方法打开改文件
								wx.openDocument({
								//res1.savedFilePath是保存的本地路径
									filePath:res1.savedFilePath,
									//showMenu参数一定要写 版本太高不写会导致打开文件后右上角的设置按钮不显示
									showMenu:true,
									success(res){
												//本人定义的提示消息方法根据自己的方法进行修改
												that.$refs.uToast.show({
													...that.$GetMssage(true, `下载成功,正在打开文件...`),
												})
									},
									fail(err1){
										//本人定义的提示消息方法根据自己的方法进行修改
												that.$refs.uToast.show({
													...that.$GetMssage(false, err1),
												})
									}
								})
							},
							fail(err){
								//本人定义的提示消息方法根据自己的方法进行修改
								that.$refs.uToast.show({
									...that.$GetMssage(false, err),
								})
							},
						})
					}
				})
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值