FileReader结果返回null

时间:2018-09-18 10:32:20

标签: javascript cordova phonegap

我正在学习如何使用phonegap读取文件。我从头开始一切。这就是我所做的:

  1. 下载并安装npm
  2. 通过npm安装Phonegap(npm install -g phonegap)
  3. 通过npm(npm install -g cordova)安装Cordova,这可能是不必要的,但我还是这样做了
  4. 创建我的测试应用(通过phonegap创建测试文件)
  5. 添加android平台(phonegap平台添加android)

此后,我注意到我的插件文件夹和config.xml中已经包含了cordova-plugin-file,因此我没有安装它(如果我对此错误,请纠正我)

然后,在index.html文件的底部,我像这样编辑它:

    .
    .
    .

    <script type="text/javascript">
        app.initialize();
    </script>
    <script>
        function startFile()
        {
            window.resolveLocalFileSystemURL('file:///storage/emulated/0/newfile.txt', readFile, fail);
        }

        function readFile(fileEntry) 
        {
            fileEntry.file(function(file) 
            {
                var reader = new FileReader();
                reader.onloadend = function(e) 
                {
                    var content = this.result;
                    alert("file content: " + content);
                };
                reader.readAsText(file);
            });
        }

        function fail(e)
        {
            alert(e.code);
        }
    </script>
    <input type="button" value="read file" onclick="startFile()" />
</body>

</html>

非常简单,因为我只想查看它如何读取文件并在警报消息框中查看它。

我已经将newfile.txt复制到了我的android存储设备上,似乎找到了文件,但警报显示“文件内容:空”

文件的内容只是“ hello world”。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我没有抓住resolveLocalFileSystemURL上的文件,而是先抓住了目录,然后从directoryEntry对象中获取了文件

<table border=0>
<tr>
  <td>text text text  text  text  text  text  text  text  text  text  text text text text text text text text text</td>
</tr>
</table>

<style>
table, td {width:auto; white-space: nowrap; }
</style>