HTML5 File API: FileReader.readAsText() returns "undefined"
Asked Answered
G

2

17

I use Chrome 12 on Mac OS X and I've included jQuery 1.6.1 within the document.

I try to read the contents of a file as text and save it in a data-object with the following function:

this.upload = function(file) {
    console.log('FileHandler.upload called with ' + file.name + '.');
    console.log(file);
    console.log(this.reader);

    data = {
        content: this.reader.readAsText(file)
    }

    console.log('Content: ' + data.content);
}

"file" seams to be a valid file-object and "this.reader" is a fresh instance of type FileReader. This code creates the following console output:

http://cl.ly/1Y2b383G2F272x1m1P0N

enter image description here

Gregale answered 20/6, 2011 at 17:55 Comment(0)
G
16

That's not the way it works according to the docs. You should call the readAsText() function, and when it's completed the result is stored in .result.

Greenheart answered 20/6, 2011 at 18:34 Comment(0)
V
0

i found this example in this page of the docs and it worked for me on the first try:

HTML:

<input type="file" onchange="previewFile()"><br>
<p class="content"></p>

JavaScript:

function previewFile() {
  const content = document.querySelector('.content');
  const [file] = document.querySelector('input[type=file]').files;
  const reader = new FileReader();

  reader.addEventListener("load", () => {
    // this will then display a text file
    content.innerText = reader.result;
  }, false);

  if (file) {
    reader.readAsText(file);
  }
}
Vevina answered 7/3, 2022 at 18:50 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.