首页 > 解决方案 > fileReader.readAsText() 抛出“FileReader”:参数 1 不是“Blob”类型

问题描述

我正在尝试读取 CSV 或 Excel 文件以将其转换为表格。现在我刚刚创建了一个类来读取输入文件:

输入是:

<input type="file" class="form-control-file" id="file_upload">

现在我刚刚创建了一个类来读取输入文件:

 class InputReader_tiqet{

    constructor(input_id) {
        this.inputId=input_id;
        this.filetoLoad=document.getElementById("file_upload").files[0];
    }   

    readFileData(){
        this.filetoLoad = document.getElementById(this.inputId).files[0];
        var fileReader = new FileReader();
        fileReader.onload = function(fileLoadedEvent){
            this.fileData = fileLoadedEvent.target.result;

        };

        fileReader.readAsText(this.fileToLoad, "UTF-8");
    }

    getData(){
        return this.fileData;
    }


}

我按如下方式运行它:

inputReader_object= new InputReader_tiqet("file_upload");

 $("#file_upload").on('change', function(){
            inputReader_object.readFileData();
            //clean input field
            this.val("");
});

当输入文件更改时,我收到以下错误:

Uncaught TypeError: Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'.

标签: javascripthtmlfilereader

解决方案


问题已解决:this.filetoLoad 而不是 this.fileToLoad。


推荐阅读