场景是:在小程序中下载docx或者excel,并且客户需要拿到这个文件,后续去转发。
现在找不到这个文件。 请问需要怎么做才能找到这个文件。
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为时间戳,只能根据文件生成时间判断是哪个文件了
最后,记得找到文件,手动重命名拓展名或.docx或者.xlsx