uni-app中uni.saveFile在安卓11系统上成功回调里调用plus.io.getFileInfo失败
uni-app中uni.saveFile在安卓11系统上成功回调里调用plus.io.getFileInfo失败
uni.saveFile在安卓11系统上成功回调里面调用plus.io.getFileInfo失败会报15,但是应该怎么修改呢
2 回复
已解决,改为uni.getFileInfo就可以了
更多关于uni-app中uni.saveFile在安卓11系统上成功回调里调用plus.io.getFileInfo失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在安卓11系统上,uni.saveFile成功回调后调用plus.io.getFileInfo返回错误码15,通常是由于文件路径权限问题导致的。安卓11加强了分区存储(Scoped Storage)限制,应用无法直接通过绝对路径访问某些目录下的文件。
解决方案:
- 使用
uni.downloadFile下载文件时,若需保存到本地,建议直接使用其返回的临时路径进行操作,避免额外保存步骤。 - 若必须使用
uni.saveFile,可尝试通过以下方式获取文件信息:- 在
uni.saveFile的成功回调中,使用其返回的savedFilePath作为参数,调用plus.io.getFileInfo。 - 若仍报错,检查路径是否为应用私有目录(如
_doc/、_downloads/等),确保路径在应用可访问范围内。
- 在
- 对于需要持久化存储的文件,推荐使用
uni.saveFile保存到应用私有目录(如_doc/),再通过plus.io.getFileInfo获取信息。
示例代码:
uni.downloadFile({
url: 'https://example.com/file.pdf',
success: (res) => {
if (res.statusCode === 200) {
uni.saveFile({
tempFilePath: res.tempFilePath,
success: (saveRes) => {
plus.io.getFileInfo(saveRes.savedFilePath, (fileInfo) => {
console.log('File size:', fileInfo.size);
}, (error) => {
console.error('getFileInfo failed:', error);
});
}
});
}
}
});

