【问题标题】:EncodingError when cordova-plugin-file科尔多瓦插件文件时的编码错误
【发布时间】:2015-12-15 07:46:37
【问题描述】:

我现在正在开发一个cordova应用程序,它的平台是浏览器。

我需要从本地文件系统访问一个文本文件,所以我使用的是cordova-plugin-file。

但是我在我的 chrome 控制台中作为异常失败了(没有 CLI 错误):

代码:5

消息:“提供给 API 的 URI 格式不正确,或者生成的数据 URL 超出了数据 URL 的 URL 长度限制。”

名称:“编码错误”

因为我的代码失败了:

document.addEventListener('deviceready', dataRead, false);
    function dataRead() {
      window.webkitRequestFileSystem(window.PERSISTENT, 100500*1024*1024, function() {
        window.webkitResolveLocalFileSystemURL("filesystem:" + cordova.file.applicationDirectory + "1111.csv", gotFile, fail);
      },function (e) {
        console.log(e);
      });
    }
    function fail(e) {
      console.log("FileSystem Error");
      console.dir(e);
    }

    function gotFile(fileEntry) {
      fileEntry.file(function(file) {
        var reader = new FileReader();

        reader.onloadend = function(e) {
          console.log("Text is: "+this.result);
        }

        reader.readAsText(file);
      });

    }

我的 URI 是非法的还是出于其他原因?

谁能指出原因?或者给我一个正确的例子。

感谢任何帮助。

【问题讨论】:

    标签: cordova html5-filesystem cordova-plugin-file


    【解决方案1】:

    文件插件的良好参考点是its auto and manual tests,可以在cordova-plugin-test-frameworkthe file plugin documentation 中运行。

    关于你的问题的几点:

    • 尽量使用小于100500*1024*1024的东西,例如10*1024*1024
    • 而不是

    window.webkitResolveLocalFileSystemURL("filesystem:" + cordova.file.applicationDirectory + "1111.csv", gotFile, fail);

    尝试使用

    window.resolveLocalFileSystemURL("filesystem:" + cordova.file.applicationDirectory + "persistent/1111.csv", gotFile, fail);

    【讨论】:

    • 感谢您的回答。我遵循了您的建议,但仍然失败并显示相同的错误消息。当我阅读cordova-plugin-document: Chrome quirks 时,它说:Chrome 文件系统在设备就绪事件后没有立即就绪.....您可以使用window.isFilePluginReadyRaised 函数来检查是否已经引发了事件。 并且在我检查了这一点后,我发现filePluginIsReady 事件永远不会被触发。您对此有什么建议吗?再次感谢。
    • 顺便说一下,我对此提出了另一个问题。有兴趣或者有时间可以去看看filePluginIsReady event is never fired in chrome when using cordova-plugin-file。非常感谢。
    • @SimonBai,我意识到浏览器平台有一个怪癖,需要filesystem: 前缀-您还需要在路径中指定FS类型-请尝试更新的答案。跨度>
    • 哎呀,我之前试过加一个filesystem:,但没试过persistent。因为我会在周末之后尝试:)周末好!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 2015-10-13
    相关资源
    最近更新 更多