javascript - 在 IE11 中读取 Blob

标签 javascript csv blob internet-explorer-11 filereader

我用了this使用 JavaScript 读取 CSV 文件的文章。下面的代码在 Chrome 和 Firefox 中运行良好,但 IE 11 会抛出以下错误:

Object doesn't support property or method 'readAsBinaryString'

调用时:

reader.readAsBinaryString(blob);

根据 this然而,在 MSDN 文章中,readAsBinaryStringFileReader 支持的方法。我是否遗漏了什么/在 IE 11 中是否有不同的文件读取方式?

HTML代码:

<table>
    <tr>
        <td>Import CSV File</td>
        <td><input type="file" id="files" name="file"/></td>
    </tr>
</table>       
<button id="read" href="#">Read</button>

JS代码:

//read a file
function readBlob() {

var files = document.getElementById('files').files;

if (!files.length) {
    alert('Please select a file!');
    return;
}

var file = files[0];
var start = 0;
var stop = file.size - 1;
var reader = new FileReader();

// If we use onloadend, we need to check the readyState.
reader.onloadend = function(evt) {
    if (evt.target.readyState == FileReader.DONE) { // DONE == 2
        makeJSON(evt.target.result);
    }
};

var blob = file.slice(start, stop + 1);
reader.readAsBinaryString(blob);

最佳答案

FileReader 还支持 readAsText 方法,该方法可用于在所有三种浏览器(Chrome、FF 和IE11).

reader.readAsText(blob) 替换 reader.readAsBinaryString(blob) 解决了这个问题。

关于javascript - 在 IE11 中读取 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32213365/

相关文章:

javascript - SlickGrid如何显示50行

javascript - 如何发送带有 Blob 的 http 多部分 POST 请求?

javascript - 使用 div 和任意嵌套的 div 获取选定的文本

javascript - socket.on 内部未定义套接字

javascript - 如何在具有多个组件的页面中使用 React Router?

oracle11g - 如何通过 SQL*Plus 在 Oracle 11g 数据库中插入 Blob 数据类型值

javascript - 在 Javascript 中从本地路径创建文件或 Blob

python - 如何在 Python 中记录和保存带有日期和时间戳的文件

powershell - 导入 CSV 和 Foreach

Python:解析多个csv文件并跳过没有关键字的文件