Skip to content Skip to sidebar Skip to footer

How To Save Text File Contents To Javascript Variable?

I'm trying to read a text file of over 150,000 lines of text. I want to be able to read the text file and pass it as a parameter for processFileContent. I tried it this way, but it

Solution 1:

FileReader.onload event returns results asynchronously. You can use a callback or Promise to return result of FileReader to processFileContent. Also file at readFile would be event object, not .files property of event.target.

functionreadFile(event) {
  var file = event.target.files[0];
  if (file) {
    newPromise(function(resolve, reject) {
      var reader = newFileReader();
      reader.onload = function (evt) {
        resolve(evt.target.result);
      };
      reader.readAsText(file);
      reader.onerror = reject;
    })
    .then(processFileContent)
    .catch(function(err) {
      console.log(err)
    });
  }
}

document.getElementById('file')
.addEventListener('change', readFile, false);

functionprocessFileContent(data) {
  var list = data.split('\n');
  ...

Solution 2:

One of your problems is with scoping. You declared data as a local variable in the onload event handler, and tried returning it from the outer function, in which it was undefined. To fix this, you need to move the variable declaration out of the event handler.

You also are expecting a file as an argument to your event handler it seems, however events pass Event objects to their event handlers. To get the file, you need to get event.target.files[0]. This should fix it.

functionreadFile(event) {
    var file = event.target.files[0];  // getting the file Blobvar reader = newFileReader();
    var data;  // moved declaration
    reader.onload = function (evt) {
        data = evt.target.result;
    };
    reader.readAsText(file);
    return data;
}

Post a Comment for "How To Save Text File Contents To Javascript Variable?"