Tôi cần đọc một số tệp csv, do người dùng cung cấp. Tập tin được truyền cho các trang/script sử dụng kéo và thả div, để xử lý các tập tin thả như sau:Truyền tham số cho sự kiện tải lên FileReader
function handleFileDrop(evt) {
evt.stopPropagation();
evt.preventDefault();
var files = evt.dataTransfer.files; // FileList object.
...
}
tôi cần phải phân tích từng tập tin với một thư viện csv có thể chuyển đổi nó thành một mảng, nhưng tôi cũng cần phải theo dõi tên tệp mà tôi hiện đang phân tích cú pháp. Đây là mã tôi sử dụng để phân tích cú pháp từng tệp:
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);
}
Cho đến khi điều này hoạt động tốt. Những gì tôi cần là cũng chuyển tên tệp cho sự kiện reader.onload
, ví dụ:
reader.onload = (function(theFile){
return function(e){
***** I need to have fileName value HERE *****
};
})(currFile);
Có thể không? Tôi có thể làm cái này như thế nào? Cảm ơn trước sự giúp đỡ nào, Trân trọng
Genius! Cảm ơn rất nhiều, tôi đã kéo tóc ra cố gắng để làm điều này. Tôi nghĩ bây giờ tôi bắt đầu hiểu được việc đóng cửa! – Fiver
Làm cách nào để có thể nhận cả tên tệp và giá trị reader.result? – PatriceG
Tôi đang gặp sự cố sau mã, 'theFile' đến từ đâu? Tôi có thể thấy currFile được định nghĩa ở đâu nhưng 'theFile' có liên quan đến cái gì? – NiallJG