我有一个数据文件,我需要从中提取数据。它必须通过html输入提交。我想创建一个DataReader类来执行此操作。该类需要使用该文件构造并从文件中提取其属性,因此
class DataReader() {
constructor(file) {
this.file = file;
}
extractData(){...}
}
var data = new DataReader(file);
console.log(data.attr0, data.attr1, data.attr3, ...);
我不断得到范围问题,我不知道如何让类在实例化时获取文件,因此它会分隔它的属性。
这就是我所拥有的
class DataReader {
setFile(file) {
this.file = file;
}
getFile() {
return this.file;
}
extractData() {
var self = this; // this == DataReader
var objXMLhttp = new XMLHttpRequest();
objXMLhttp.open("GET","diabetes400.txt",true);
objXMLhttp.send();
objXMLhttp.onreadystatechange = function() {
if (objXMLhttp.readyState==4 && objXMLhttp.status==200) {
var arrContents = objXMLhttp.responseText.split("\n"); // gotcha!
self.setFile(arrContents);
console.log(arrContents);
}
}
}
}
var data = new DataReader();
data.extractData();
console.log(data.file);
如果我只记录数据,我可以在其中看到包含文件的对象,但文件打印未定义
答案 0 :(得分:0)
我认为你需要一个FileReader。 看看这个项目:http://bgrins.github.io/filereader.js/。 您可以读取文件并获取其中的内容。
看一下这个例子:
var inputUpload = document.getElementById('file-input');
FileReaderJS.setupInput(inputUpload , {
on: {
load: function(event, file){
var textBase64 = event.srcElement.result
var decodedText = atob(e.srcElement.result.split("base64,")[1]);
}
}
});