reader.onload闭包没有开火

时间:2018-04-01 19:36:26

标签: javascript file filereader

我正在使用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时,我需要使用闭包以便不会丢失循环内的范围。当我点击按钮触发上传时,为什么日志不会出现?为什么不发射功能?

1 个答案:

答案 0 :(得分:2)

您需要调用readAs___的{​​{1}}方法之一:

https://developer.mozilla.org/en-US/docs/Web/API/FileReader

如果您正在并行读取多个文件,则每个文件都需要一个单独的阅读器。

此外,事件处理程序接收的参数是事件对象,而不是文件的内容。这些将在FileReader

reader.result