2023年4月

reader.readAsBinaryString对象不支持,出现在IE 11,原因是:
[scode type="share"]
readAsBinaryString 方法会读取指定的 Blob 或 File 对象当读取完成的时候,readyState 会变成已完成(DONE),并触发 loadend 事件,同时 result 属性将包含所读取文件原始二进制格式。

注意:从 2012 年 7 月 12 日起,该方法已从 W3C 工作草案废除。
该方法已从 FileAPI 标准移除,请使用 FileReader.readAsArrayBuffer() 代替
[/scode]

解决办法:判断是不是ie浏览器,是则调用新方法。

    if (!!window.ActiveXObject || "ActiveXObject" in window){
       reader.readAsArrayBuffer(files[i]);
    }else{
       reader.readAsBinaryString(files[i]);
    }