Javascript FileReader readAsText在result属性中将文件内容存储为字符串,但当console.log记录此结果时,不会返回任何内容。

Javascript FileReader readAsText在result属性中将文件内容存储为字符串,但当console.log记录此结果时,不会返回任何内容。,javascript,html,file,filereader,Javascript,Html,File,Filereader,在HTML文件中,我创建了一个上载文件的按钮: <span id='upload' class="btn btn-default btn-file">Upload<input type="file" id="input" onchange="this.files"></span> 手持文件功能: handleFiles: function() { var fileList = this.files; /* now you can work with t

在HTML文件中,我创建了一个上载文件的按钮:

 <span id='upload' class="btn btn-default btn-file">Upload<input type="file" id="input" onchange="this.files"></span>
手持文件功能:

handleFiles: function() {
  var fileList = this.files; /* now you can work with the file list */
  console.log(fileList);
  var file = fileList[0];
  var fr = new FileReader();

 fr.readAsText(file,"utf-8");

  console.dir(fr);

  }
在浏览器控制台中,它返回具有名为“result”的属性的filereader对象,该属性包含文件内容的文本。在控制台中,如下所示:

FileReader{}
  error: null
  onabort: null
  onerror: null
  onload: null
  onloadend: null
  onloadstart: null
  onprogress: null
  readyState: 2
  result: "!Name: acorn↵!↵.O.....↵...O...↵OO..OOO↵"
  __proto__: FileReader

但是,当我尝试执行console.log(fr.result)时,控制台没有返回任何内容。它没有抛出一个错误。我不确定这里出了什么问题。有什么方法可以从FileReader读取此结果吗?

尝试替换
标签
元素,包括
for=“input”
属性为
span
元素,调用
onchange
事件
input
元素的单个处理程序

var upload=document.getElementById(“upload”);
功能手柄(e){
var reader=new FileReader();
reader.onloadend=函数(e){
console.dir(e.target.result);
}
reader.readAsText(e.target.files[0])
}
upload.onchange=handleFiles
标签输入{
可见性:隐藏;
}

Upload
尝试替换
label
元素,包括
for=“input”
属性对于
span
元素,调用
onchange
事件的单个处理程序

var upload=document.getElementById(“upload”);
功能手柄(e){
var reader=new FileReader();
reader.onloadend=函数(e){
console.dir(e.target.result);
}
reader.readAsText(e.target.files[0])
}
upload.onchange=handleFiles
标签输入{
可见性:隐藏;
}
上传
FileReader{}
  error: null
  onabort: null
  onerror: null
  onload: null
  onloadend: null
  onloadstart: null
  onprogress: null
  readyState: 2
  result: "!Name: acorn↵!↵.O.....↵...O...↵OO..OOO↵"
  __proto__: FileReader