存储到内存中的Javascript文件读取器-参数1不是类型';水滴';
好的,我读了很多文章,尝试了很多方法。我正试图将文件读取器构建到我的代码中,结果一个接一个地出错,一次又一次。注意:这是代码的简化版本。我也尝试过10种不同的方法,但都不成功,因此我提出了这个问题存储到内存中的Javascript文件读取器-参数1不是类型';水滴';,javascript,filereader,Javascript,Filereader,好的,我读了很多文章,尝试了很多方法。我正试图将文件读取器构建到我的代码中,结果一个接一个地出错,一次又一次。注意:这是代码的简化版本。我也尝试过10种不同的方法,但都不成功,因此我提出了这个问题 function init(){ // start the constructor constructTable = new constructTableS("ConstructionTable"); }; function constructTableS(name){ //
function init(){
// start the constructor
constructTable = new constructTableS("ConstructionTable");
};
function constructTableS(name){
// Variables
this.name = name;
this.csv = "";
}
constructTableS.prototype.load = function(files){
if (window.FileReader) {
// FileReader is supported.
var reader = new FileReader();
reader.onload = function(e){
//Tried this as well : var csv = event.target.result};
this.csv = reader.result};
var x = reader.readAsText(files);
} else {
alert('FileReader are not supported in this browser.');
};
目标是从主体初始化开始函数
<body onload="init()">
然后调用“class”的load函数并将文件中的数据发送给它
<input type="file" id="csvFileInput" onchange="constructTable.load(this.files)" accept=".csv">
我得到的错误是:参数1不是'Blob'类型。这来自这一行var x=reader.readAsText(文件)强>
我要做的是将数据加载到一个变量中,而不是一个innerHTML插槽中。我读过很多这样的例子
一旦调用该事件,它要么无法识别我的类,要么忽略该类中的任何函数,因此无法存储数据。或者它只是返回,而不是blob类型
我从这里举了一个例子:
这是可行的,但它不会将代码读入一个类中的变量,我可以在需要时调用它
this.files返回上载文件的数组,要一次读取一个文件,请使用循环
for (var i = 0; i < files.length; i++) {
//your logic goes here
}
for(var i=0;i
this
引用当前的HTMLElement
,该元素是文件输入元素,该元素具有名为files
的属性,该属性是所选文件的数组
或者,如果您只允许用户一次上载一个文件,请将this.files
更改为this.files[0]
this.files
返回上载文件的数组,若要一次读取一个文件,请使用循环
for (var i = 0; i < files.length; i++) {
//your logic goes here
}
for(var i=0;i
this
引用当前的HTMLElement
,该元素是文件输入元素,该元素具有名为files
的属性,该属性是所选文件的数组
或者,如果您一次只允许用户上载一个文件,请将this.files
更改为this.files[0]
一个读卡器只能读取一个文件。在文件上使用循环。一个读卡器只能读取一个文件。在文件上使用循环。是的,谢谢,我知道了,但它不能解决错误。谢谢。您是否将this.files
更改为this.files[0]
?由于错误表明您正在向其传递正确的类型,即类型为Blob
或类型为Blob
的子类型的File
,请在导致错误的行上断开,并使用调试器查看传递的参数的类型。确定是文件[0]。我明白问题所在。我仍然无法从Filereader循环中提取数据?运行此命令this.csv=reader.result};本例中的文件阅读器对我没有帮助。是的,谢谢,我明白了,但它不能解决错误。谢谢。您是否将this.files
更改为this.files[0]
?由于错误表明您正在向其传递正确的类型,即类型为Blob
或类型为Blob
的子类型的File
,请在导致错误的行上断开,并使用调试器查看传递的参数的类型。确定是文件[0]。我明白问题所在。我仍然无法从Filereader循环中提取数据?运行此命令this.csv=reader.result};在这种情况下,文件阅读器对我没有帮助。