Javascript 文件读取器到字符串
考虑以下代码Javascript 文件读取器到字符串,javascript,filereader,Javascript,Filereader,考虑以下代码 function readSingleFile(evt) { //Retrieve the first (and only!) File from the FileList object var myFile = evt.target.files[0]; var reader = new FileReader(); reader.readAsText(myFile); var myString = reader.toString();
function readSingleFile(evt) {
//Retrieve the first (and only!) File from the FileList object
var myFile = evt.target.files[0];
var reader = new FileReader();
reader.readAsText(myFile);
var myString = reader.toString();
alert(myString); // print - "[object FileReader]"
}
我尝试将所有文件内容放入字符串中,例如,如果文件内容是
helloWorld1
helloWorld2
我将获得该内容的警报。这不是获得文件阅读器结果的方式。将您的代码修改为:
function readSingleFile(evt) {
//Retrieve the first (and only!) File from the FileList object
var myFile = evt.target.files[0];
var reader = new FileReader();
reader.readAsText(myFile);
reader.onload=function(){alert(reader.result)}
}
@Markasoftware你好。我正在努力做到这一点。我做到了:var-bob;reader.onload=function(){bob=reader.result;}console.log(bob)
.console.log显示bob未定义。为什么?@SharikovVladislav这是因为javascript是异步的。让我看一下代码是如何工作的。首先,你做var-bob代码>。它初始化名为bob
的未定义变量。然后,执行reader.onload=function(){bob=reader.result}
,设置事件侦听器。但是,它只是设置事件侦听器。它不等待事件发生,它只是设置一个处理程序。所以,口译员继续说。它不需要等待阅读完成。因此,当您执行console.log(bob)
时,它会记录未定义的日志,因为读卡器尚未完成,因为您所做的只是添加一个处理程序,该处理程序在完成后将被调用。要使其正常工作,需要将console.log(bob)
放在reader.onload
函数中,以便在读取器完成读取之前不会调用它。对不起,如果这没有道理,请问任何问题,如果你不明白。我明白你说的。但是我需要这个处理程序中的文件内容。如何实现它?您只需将需要访问文件内容的所有代码放在处理程序内部(reader.onload处理程序内部)