我正在使用文件 API 插件中的 checkFile 函数 https://ionicframework.com/docs/native/file#checkFile在 Ionic 3 中检查文件是否存在于本地。 Promise 被拒绝并出现以下错误:
文件错误{代码:5,消息:“ENCODING_ERR”}
从我所看到的文件 API 的 Mozilla 文档 https://developer.mozilla.org/en/docs/Web/API/FileError,问题是“URL 格式错误”。但是,我不明白 URL 的格式是如何错误的。这是相关代码,显示了我如何调用该函数以及所涉及变量的实际值(baseDirectory
被设定为file:///data/user/0/ch.protectator.fehpedia/files/
) :
let baseDirectory = this.file.dataDirectory;
let fileToCheck = "File:Icon Portrait Abel.png";
let promise = this.file.checkFile(this.file.dataDirectory, fileName).then(bool => {
// Things
}, reason => {
console.error(reason);
});
这就是失败的 Promise。这种情况的奇怪之处在于,我实际上尝试稍后在代码中显示该图像,忽略 File.checkFile 是否已找到它,并且图像显示.
在 HTML 模板中,我稍后使用:
<img [src]="imgUrl">
where imgUrl
使用以下方式设置:
this.imgUrl = this.file.dataDirectory + '/' + "File:Icon Portrait Abel.png";
因此,当 WebView 调用时,图像存在并正确显示,但本机文件插件告诉我 URL 格式错误,即使对我来说,它似乎是完全相同的 URL。这就是我陷入困境的地方,我不知道要更改什么才能使代码正常工作。应该checkFile
以不同的方式使用?另外,更准确的失败原因会有所帮助,但我得到的只是ENCODING_ERR
,我不知道 URL 的实际部分似乎格式错误。
在查看类似案例后,我没有找到有关此特定案例的解决方案或文档。但是在尝试不同的值时,我找到了导致此错误的原因 : :
。是的,结肠。文件名中出现的那个。
虽然我还没有解释why :
导致本机File
插件失败但网络视图没有失败,删除:
从文件名有效地允许File
无需提出任何要求即可看到它ENCODING_ERR
。虽然这不是最佳解决方案,但这种解决方法是有效的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)