BeN*_*ErR 20 javascript html5 filereader
我需要阅读一些由用户给出的csv文件.使用拖放div将文件传递给页面/脚本,该div处理文件删除,如下所示:
function handleFileDrop(evt) {
evt.stopPropagation();
evt.preventDefault();
var files = evt.dataTransfer.files; // FileList object.
...
}
Run Code Online (Sandbox Code Playgroud)
我需要用csv库解析每个文件,将其转换为数组,但我还需要跟踪我正在解析的文件名.这是我用来解析每个文件的代码:
for(var x = 0; x < files.length; x++){
var currFile = files[x];
var fileName = currFile.name;
var reader = new FileReader();
reader.onload = (function(theFile){
return function(e){
var csvArr = CSV.csvToArray( e.target.result, ";", true );
console.log(csvArr);
};
})(currFile);
reader.readAsText(currFile);
}
Run Code Online (Sandbox Code Playgroud)
在此之前,一切都很好.我需要的是也将文件名传递给reader.onload事件,例如:
reader.onload = (function(theFile){
return function(e){
***** I need to have fileName value HERE *****
};
})(currFile);
Run Code Online (Sandbox Code Playgroud)
有可能吗?我怎样才能做到这一点?在此先感谢任何帮助,最好的问候
Gra*_*ham 50
请尝试以下方法:
var reader = new FileReader();
reader.onload = (function(theFile){
var fileName = theFile.name;
return function(e){
console.log(fileName);
console.log(e.target.result);
};
})(currFile);
reader.readAsText(currFile);
Run Code Online (Sandbox Code Playgroud)
在这里,fileName每次将文件传递给外部方法时,您都要创建一个新变量.然后,您将创建一个函数,该函数可以访问该变量(由于闭包)并返回它.
| 归档时间: |
|
| 查看次数: |
28730 次 |
| 最近记录: |