Javascript filereader onload ( get file from serve

2019-09-09 13:34发布

问题:

What I want is to read a file from the windows file system or a server so I can display the contents on the website and we are not allowed to use a database or PHP only Javascript.

What I currently have is beneath this and it works if I get the file from a html file upload box the only thing I need is how do I get a file in the javascript without inserting it manually but to load on pageload.

The rest of the code works if I insert the file manually I only need to get a file and insert it into var file = ;

var file = // How do I get file from windows system / or server is also a possibility

var reader = new FileReader();
reader.onload = function(progressEvent){
// Entire file
console.log(this.result);

// By lines
var lines = this.result.split('\n');
for(var line = 0; line < lines.length; line++){
  console.log(lines[line]);
  }
};
reader.readAsText(file);

回答1:

I got it to work


 var file = readTextFile("test.txt");
 var allText;
 var trumpCount = 0;
 var hilaryCount = 0;
 var reader = new FileReader();
// Entire file
console.log(this.result);
 // alert(allText);
// By lines
var lines = allText.split('\n');
for(var line = 0; line < lines.length; line++){
 // alert(lines[line]);
  if (lines[line].indexOf("t") !== -1){
    trumpCount++;
  }else{
  hilaryCount++;
  }

}
alert("Votes for trump: " + trumpCount +  " Votes for hilary: " + hilaryCount + " Total votes: " + (trumpCount + hilaryCount))

function readTextFile(file)
{
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function ()
{
    if(rawFile.readyState === 4)
    {
        if(rawFile.status === 200 || rawFile.status == 0)
        {
           allText = rawFile.responseText;
            //alert(allText);
        }
    }
}
rawFile.send(null);
}


回答2:

You are not allowed to do this due to security reasons.

File objects may be obtained from a FileList object returned as a result of a user selecting files using the input element, from a drag and drop operation's DataTransfer object, or from the mozGetAsFile() API on an HTMLCanvasElement.

https://developer.mozilla.org/nl/docs/Web/API/FileReader