我为我的应用程序写了一个小后端,我可以上传csv' s。它需要通过csv并将它们解析为JSON。我正在使用PapaParse,我可以做一个文件。但是我需要上传多个文件并让它们解析。我可以上传文件,但我无法弄清楚如何选择所有文件。
这是我的代码:HTML
//Getting the document by the ID and when something changes it runs the function
document.getElementById("fileToRead").addEventListener("change",function(){
//creates a var for the first file.
var files = this.file[0]
Papa.parse(files, {
header:true,
dynamictyping:true,
complete:function(results){
console.log(results);
var data = results.split;
document.getElementById("editor").innerHTML = data;
}
});
//this prints the value of the evt.target.result (which is another pre-defined JS object that runs with
//FileReader woo hoo!) this has to have .innerHTML becuase I have a <p> tag, when it was a <textArea> it had
// to have .value
});
这是js文件:
{{1}}
我很确定它只与JS中的第一行有关,只选择文件0但是我尝试了空括号和其他一些东西,它仍然只输出一个对象。
答案 0 :(得分:0)
好的,我明白了。我对如何遍历所有文档感到困惑,这里是修复它的代码。
document.getElementById("fileToRead").addEventListener("change",function(){
//creates a var for the first file.
//Gets the number to loop through
var input = document.getElementById("fileToRead");
console.log(input.files.length);
for(var i = 0; i < input.files.length; i++){
var files = input.files[i];
Papa.parse(files, {
header:true,
dynamictyping:true,
complete:function(results){
console.log(results);
document.getElementById("editor").innerHTML = "stuff";
}
});
1)创建一个名为input的变量来抓取所有文件
2)我console.log它以便我知道我抓住了所有文件,你需要将files.length添加到输入中,因为你正在查找该输入中的所有文件。 files是我们可以使用的预定义单词!
3)然后使用input.files.length循环浏览文件,就像我为console.log所做的那样,因为我知道这很有效。我想我可以创建一个变量,但无论如何。
4)for循环中的var文件与[i]一起使用,因为当for循环遍历时,它将填充[i]的值,它以0开头,因此它将从第一个文档开始,然后通过其余的都没有留下。
5)使用PapaParse浏览文件。
在competition:function(results)部分我正在使用console.log,所以我知道代码在这里。最后一点代码document.getElementByID是因为我想看看它输出的是什么。这当前不起作用,但它确实输出“我在那里的东西。
我希望这有助于其他人尝试做这样的事情。