17
我需要讀取用戶給出的一些csv文件。文件傳遞到網頁/腳本使用拖放DIV,處理該文件放置如下:將參數傳遞給FileReader onload事件
function handleFileDrop(evt) {
evt.stopPropagation();
evt.preventDefault();
var files = evt.dataTransfer.files; // FileList object.
...
}
我需要解析與它轉換成一個陣列的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);
}
在此之前,一切正常。我需要的是文件名也傳遞給reader.onload
事件,如:
reader.onload = (function(theFile){
return function(e){
***** I need to have fileName value HERE *****
};
})(currFile);
是可能的?我怎樣才能做到這一點?在此先感謝您的幫助,最好的問候
天才!非常感謝,我拉着我的頭髮試圖做到這一點。我想我現在開始明白關閉了! – Fiver
如何獲取文件名和reader.result值? – PatriceG
我無法遵循代碼,'theFile'從哪裏來?我可以看到currFile在哪裏定義,但'theFile'與什麼關聯? – NiallJG