我正在使用FileReader进行简单的文件文本上传。
var filesInput = document.getElementById("txtImport");
for (var i = 0; i < filesInput.files.length; i++) {
current = filesInput.files[i];
var reader = new FileReader();
reader.onload = function(file) {
return function(e) {
console.log('e', e) // not logging
}
}(current)
}
在阅读FileReader onload with result and parameter时,我需要使用闭包以便不会丢失循环内的范围。当我点击按钮触发上传时,为什么日志不会出现?为什么不发射功能?
答案 0 :(得分:2)
您需要调用readAs___
的{{1}}方法之一:
https://developer.mozilla.org/en-US/docs/Web/API/FileReader
如果您正在并行读取多个文件,则每个文件都需要一个单独的阅读器。
此外,事件处理程序接收的参数是事件对象,而不是文件的内容。这些将在FileReader
。
reader.result