小程序
小游戏
企业微信
微信支付
扫描小程序码分享
场景是:在小程序中下载docx,并且客户需要拿到这个文件,后续去转发或者打印。
现在找不到这个文件。 请问需要怎么做才能找到这个文件。
8 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
wx.env.USER_DATA_PATH + '/abc.txt'
wx.env.USER_DATA_PATH 真机上是 wxfile://usr
真实路径:手机\内部存储\tencent\MicroMsg\wxanewfiles\xxxx\abc.txt
xxxx:是一个很长的由英文数字组成的文件夹,这个文件夹的命名规则,尚不清楚
所以保存后的文件具体在什么路径不知道,是个问题,不过有个投机取巧的方法:
1.使用wx.downloadFile下载docx文件后,使用fileSystemManager.saveFile保存docx文件为图片格式
2.保存成功后,在使用wx.saveImageToPhotosAlbum保存到相册,最后路径为
手机\内部存储\tencent\MicroMsg\WeiXin\mmexpor1xxxxxxxx.jpg,1xxxxxxxx为时间戳,只能根据文件生成时间判断是哪个文件了
//先检查相册访问授权情况
wx.getSetting({
success: (res) => {
//检查是否有访问相册的权限,如果没有则通过wx.authorize方法授权
if (!res.authSetting['scope.writePhotosAlbum']) {
console.log('没有获取授权');
wx.authorize({
scope: 'scope.writePhotosAlbum',
//用户点击允许获取相册信息后进入下载保存逻辑
this.save()
}
})
} else {
console.log('已获取授权');
});
save:function(){
wx.downloadFile({
url: "docx文件下载地址",
success(res) {
console.log(res)
var savePath = wx.env.USER_DATA_PATH + "/123.docx.jpg"
wx.getFileSystemManager()
.saveFile({//下载成功后保存到本地
tempFilePath: res.tempFilePath,
filePath: savePath ,
success(res2) {
//获取了相册的访问权限,使用 wx.saveImageToPhotosAlbum 将图片保存到相册中
wx.saveImageToPhotosAlbum({
//保存成功弹出提示,告知一下用户
wx.showModal({
title: '文件已保存到手机相册',
content: '位于tencent/MicroMsg/WeiXin下 \r\n将保存的文件重命名改为[ .docx ]后缀即可',
confirmColor: '#0bc183',
confirmText: '知道了',
showCancel: false
},
fail(res) {
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
文件名类似 mmexpor1xxxxxxxx.jpg
1xxxxxxxx为时间戳,只能根据文件生成时间判断是哪个文件了
同问,怎么获取不同机型的类似:手机\内部存储\tencent\MicroMsg\wxanewfiles\xxxx\abc.txt,这样的路径,代码中怎么写,我是小白不太会,是不是每个机型去统计,写成判断,各自机型进行判断?
还是直接弹窗确认后, 直接将地址写入剪切板, 然后提示 “复制地址在浏览器打开”
wx.showModal({ title: '提示', content: '请复制链接到浏览器中查看', cancelText: '取消', confirmText: '复制链接', success(res) { if (res.confirm) { wx.setClipboardData({ data: fileUrl, // url地址 success(res) {} }); } } })
2023年了 还只能用这样的方法吗?
是呀,文件下载下来,究竟文件在哪里,官方能给个明确的答复嘛,现在都是两眼摸黑
我认为最好的方法,是上传到第三方平台,然后显示链接,让用户自己下载
你好,这个路径可以自行设置的:https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.saveFile.html
有save 自然就有get
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
wx.env.USER_DATA_PATH + '/abc.txt'
wx.env.USER_DATA_PATH 真机上是 wxfile://usr
真实路径:手机\内部存储\tencent\MicroMsg\wxanewfiles\xxxx\abc.txt
xxxx:是一个很长的由英文数字组成的文件夹,这个文件夹的命名规则,尚不清楚
所以保存后的文件具体在什么路径不知道,是个问题,不过有个投机取巧的方法:
1.使用wx.downloadFile下载docx文件后,使用fileSystemManager.saveFile保存docx文件为图片格式
2.保存成功后,在使用wx.saveImageToPhotosAlbum保存到相册,最后路径为
手机\内部存储\tencent\MicroMsg\WeiXin\mmexpor1xxxxxxxx.jpg,1xxxxxxxx为时间戳,只能根据文件生成时间判断是哪个文件了
//先检查相册访问授权情况
wx.getSetting({
success: (res) => {
//检查是否有访问相册的权限,如果没有则通过wx.authorize方法授权
if (!res.authSetting['scope.writePhotosAlbum']) {
console.log('没有获取授权');
wx.authorize({
scope: 'scope.writePhotosAlbum',
success: (res) => {
//用户点击允许获取相册信息后进入下载保存逻辑
this.save()
}
})
} else {
console.log('已获取授权');
this.save()
}
}
});
save:function(){
wx.downloadFile({
url: "docx文件下载地址",
success(res) {
console.log(res)
var savePath = wx.env.USER_DATA_PATH + "/123.docx.jpg"
wx.getFileSystemManager()
.saveFile({//下载成功后保存到本地
tempFilePath: res.tempFilePath,
filePath: savePath ,
success(res2) {
//获取了相册的访问权限,使用 wx.saveImageToPhotosAlbum 将图片保存到相册中
wx.saveImageToPhotosAlbum({
filePath: savePath ,
success: (res) => {
//保存成功弹出提示,告知一下用户
wx.showModal({
title: '文件已保存到手机相册',
content: '位于tencent/MicroMsg/WeiXin下 \r\n将保存的文件重命名改为[ .docx ]后缀即可',
confirmColor: '#0bc183',
confirmText: '知道了',
showCancel: false
})
},
fail(res) {
console.log(res)
}
})
},
fail(res) {
console.log(res)
}
})
},
fail(res) {
console.log(res)
}
})
},
文件名类似 mmexpor1xxxxxxxx.jpg
1xxxxxxxx为时间戳,只能根据文件生成时间判断是哪个文件了
同问,怎么获取不同机型的类似:手机\内部存储\tencent\MicroMsg\wxanewfiles\xxxx\abc.txt,这样的路径,代码中怎么写,我是小白不太会,是不是每个机型去统计,写成判断,各自机型进行判断?
还是直接弹窗确认后, 直接将地址写入剪切板, 然后提示 “复制地址在浏览器打开”
wx.showModal({ title: '提示', content: '请复制链接到浏览器中查看', cancelText: '取消', confirmText: '复制链接', success(res) { if (res.confirm) { wx.setClipboardData({ data: fileUrl, // url地址 success(res) {} }); } } })
2023年了 还只能用这样的方法吗?
是呀,文件下载下来,究竟文件在哪里,官方能给个明确的答复嘛,现在都是两眼摸黑
我认为最好的方法,是上传到第三方平台,然后显示链接,让用户自己下载
你好,这个路径可以自行设置的:https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.saveFile.html
有save 自然就有get