Read readAsBinaryString in IE11



尝试在IE10/11中将二进制读取为字符串,但失败了。适用于铬。 尝试了不同的IE修复程序,但没有成功。我似乎最大的问题是我找不到结果。它在角度/cli 中给出错误":"1.6.5"。

e.target.result 返回 null,在编译器中不被接受

FileReader.prototype.readAsBinaryString = function(blb) {
const that = this;
const conversor = function (e) {
const toConvert = e.target.result || '';
let binary = '';
const bytes = new Uint8Array(toConvert);

reader.result 返回 null,在编译器中不接受

if (FileReader.prototype.readAsBinaryString === undefined) {
FileReader.prototype.readAsBinaryString = function (fileData) {
let binary = '';
const pt = this;
reader.onload = function (e) {
const bytes = new Uint8Array(reader.result);
const length = bytes.byteLength;
for (let i = 0; i < length; i++) {
binary += String.fromCharCode(bytes[i]);
}
const fl = {target: {result: binary}};
pt.onload(fl);
};
reader.readAsArrayBuffer(fileData);
};
}

尝试解析它,编译器喜欢它但不起作用。

const r: any = reader;
const t: any = e.target;
let data;
if (!e) {
data = r.content;
} else {
data = t.result;
}

有什么想法吗?

JavaScript readAsBinaryString Function on E11

我通过尝试和错误找到了Chrome和IE的组合解决方案。

this.sharepointService.getFile(this.sharepointService.siteUrl + 'Templates/' + template.fileLeafRef).subscribe(f => {
const reader = new FileReader();
let binary = '';
if (FileReader.prototype.readAsBinaryString === undefined) {
FileReader.prototype.readAsBinaryString = function (fileData) {
const pt = this;
reader.onload = function (e) {
let  ia = null;
let length = 0;
if (e) {
ia = new Uint8Array(e.target['result']);
length = ia.length;
}
for (let i = 0; i < length; i++) {
binary += String.fromCharCode(ia[i]);
}
};
reader.readAsArrayBuffer(fileData);
};
}
reader.readAsBinaryString(f);
reader.onloadend = () => {
let base64data;
if ( binary === '') {
base64data = reader.result;
} else {
base64data = binary.toString();
}

最新更新