【发布时间】:2019-01-02 18:56:26
【问题描述】:
我正在尝试从输入加载文件,然后使用 filereader 读取文件。现在我只要单击按钮就会收到此错误。
dataControls.js:42 Uncaught (in promise) TypeError: 无法在“FileReader”上执行“readAsText”:参数 1 不是“Blob”类型。
HTML:
<div style="padding:0px;">
<button id="saveData" type="button" class="btn btn-primary" data-toggle="button" title="Save Data">
<i class="fa fa-floppy-o" aria-hidden="true"></i>
</button>
<button id="loadData" type="button" class="btn btn-warning" data-toggle="button" title="Will reload the data from the last save">
<i class="fa fa-reply-all" aria-hidden="true"></i>
</button>
<button id="clearData" type="button" class="btn btn-danger" data-toggle="button" title="Clear stored data">
<i class="fa fa-times" aria-hidden="true"></i>
</button>
<input type="file" accept=".data" id="load" on style="display:none" >
</div>
JS:
$("#loadData").click(async () => {
if (!grid || !grid.getInstance() || !JSON.parse(localStorage.getItem('data') || "[]").length) {
alerts.error("No data available to load yet")
return;
}
var input = document.getElementById('load');
input.click();
var file = document.getElementById("load").files[0];
var reader = new FileReader();
reader.onload = read;
function read(evt){
var text =reader.result;
}
reader.readAsText(file);
var data = reader.result;
console.log(reader.result)
grid.setData(JSON.parse(data)).getInstance().loadData()
alerts.success("Data loaded successfully.")
})
我希望文件先加载,然后再执行。
【问题讨论】:
标签: javascript filereader