HTML5 File API:如何查看readAsText()的结果

问题描述 投票:30回答:2

readAsText()功能完成时,结果存储在.result

如何查看.result中读取的文件内容是否正确?

 fr = new FileReader();
 fr.readAsText(file);
 var x = fr.result;
 console.log(x); //does not display anything on console

现在如何显示.result对象以验证内容?

javascript html5 fileapi
2个回答
56
投票

readAsText是异步的,因此您需要使用onload回调才能看到结果。

尝试类似的事情,

var fr = new FileReader();
fr.onload = function(e) {
    // e.target.result should contain the text
};
fr.readAsText(file);

这里的更多信息,

https://developer.mozilla.org/en-US/docs/DOM/FileReader


0
投票

这是一个完整的html和vanilla javascript示例,它创建一个简单的文件输入,并使用FileReader.readAsText()读取文件的文件读取器,然后将该文件的文本内容写入控制台。这对于.txt或.csv这样的文件非常有效。

还有FileReader.readAsArrayBuffer()FileReader.readAsBinaryString()FileReader.readAsDataURL()在其他用例中可能会更好。我也建议阅读https://developer.mozilla.org/en-US/docs/Web/API/FileReader

注意:用户可以选择多个文件以包含在输入中,此代码将仅读取其中的第一个文件(如在event.target.files中对[0]元素的引用中所见。

<html>
  <head>
    <script>
      window.onload = function(event) {
        document.getElementById('fileInput').addEventListener('change', handleFileSelect, false);
      }

      function handleFileSelect(event) {
        var fileReader = new FileReader();
        fileReader.onload = function(event) {
          console.log(event.target.result);
        }
        var file = event.target.files[0];
        fileReader.readAsText(file);
      }
    </script>
  </head>
  <body>
    <input type="file" id="fileInput">
  </body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.