首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >本机离子3:文件:{代码: 5,消息:"ENCODING_ERR"}

本机离子3:文件:{代码: 5,消息:"ENCODING_ERR"}
EN

Stack Overflow用户
提问于 2017-08-28 00:35:29
回答 5查看 16.4K关注 0票数 10

我正在使用Ionic 3中的文件API插件中的checkFile函数来检查文件在本地是否存在。承诺拒绝了以下错误:

FileError {代码: 5,消息:"ENCODING_ERR"}

从我在文件API的Mozilla文档上看到的情况来看,问题是“URL格式错误”。但是,我不知道URL的格式是如何错误的。下面是显示如何调用函数的相关代码,以及涉及到的变量的实际值( baseDirectory的值设置为file:///data/user/0/ch.protectator.fehpedia/files/):

代码语言:javascript
复制
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);
});

而这就是承诺失败的原因。这种情况的奇怪之处在于,我实际上试图在代码后面显示该图像,忽略了是否已被File.checkFile找到,而则显示

在HTML模板中,我稍后使用:

代码语言:javascript
复制
<img [src]="imgUrl">

其中imgUrl是使用以下方法设置的:

代码语言:javascript
复制
this.imgUrl = this.file.dataDirectory + '/' + "File:Icon Portrait Abel.png";

因此,图像存在并在被WebView调用时正确显示,但是本地文件插件告诉我URL格式错误,即使在我看来,它似乎是完全相同的URL。这就是我被困的地方,我不知道如何改变代码才能工作。应该以不同的方式使用checkFile吗?另外,一个更精确的失败原因会有所帮助,但我得到的只有ENCODING_ERR,我不知道URL的实际部分看起来有什么问题。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-08-30 07:18:06

在查看了类似的案例之后,我没有找到任何解决方案,也没有找到关于这个具体案例的文档。但是在试验不同的值时,我发现了导致这个错误的原因--:。是的结肠。文件名中的一个。

虽然我仍然无法解释为什么:会导致原生File插件失败,而不会导致web视图失败,但是从文件名中删除:实际上可以让File在不引发ENCODING_ERR的情况下看到它。虽然这不是一个最佳解决方案,但这种解决办法是有效的。

票数 19
EN

Stack Overflow用户

发布于 2019-02-28 14:38:30

在我的例子中,我让"File:///“进入了路线,现在它开始工作了。

票数 2
EN

Stack Overflow用户

发布于 2019-10-07 20:16:44

所有的答案都不能解决我的问题。非常简单,我使用错误的目录在iOS中保存了一个文件。我使用的是“缓存”,但一直得到错误。

我换到

代码语言:javascript
复制
this.file.tempDirectory;

而且起作用了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45910519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档