我正在使用 checkFile function from File API plugin在 Ionic 3 中检查文件是否存在于本地。 Promise 拒绝并出现以下错误:
FileError {code: 5, message: "ENCODING_ERR"}
从我在 Mozilla Docs of the File API 上看到的,问题是“URL 格式不正确”。但是,我看不出 URL 是如何格式错误的。这是显示我如何调用函数的相关代码以及所涉及变量的实际值(baseDirectory
的值设置为 file:///data/user/0/ch .protectator.fehpedia/文件/
) :
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">
其中 imgUrl
设置使用:
this.imgUrl = this.file.dataDirectory + '/' + "File:Icon Portrait Abel.png";
所以图像存在并在 WebView 调用时正确显示,但 Native File 插件告诉我 URL 格式错误,即使对我来说它似乎是完全相同的 URL。这就是我被困的地方,我不知道要更改什么才能使代码正常工作。 checkFile
是否应该以不同的方式使用?此外,更准确的失败原因会有所帮助,但我得到的只是 ENCODING_ERR
,我不知道 URL 的实际部分似乎格式错误。
最佳答案
在查看了类似的案例后,我没有找到解决方案,也没有找到关于这个特定案例的文档。但是在尝试不同的值时,我发现了导致此错误的原因::
。是的,冒号。文件名中的那个。
虽然我仍然没有解释为什么 :
导致 native File
插件失败而不是 web View ,删除 :
文件名有效地允许 File
在不引发 ENCODING_ERR
的情况下查看它。虽然这不是最佳解决方案,但此解决方法很有效。
关于android - ionic 3 native : File : {code: 5, 消息: "ENCODING_ERR"},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45910519/