Angular:在IE中将base64字符串转换为字节数组

时间:2018-04-08 18:25:59

标签: javascript angular internet-explorer base64

我正在尝试将base64字符串转换为字节数组,并在IE中将其作为pdf文件打开。唯一的问题是IE中不支持atob,所以尝试使用这样的缓冲区:

let b64Data = myBase64Url.split(',', 2)[1];
var byteArray = new Buffer(b64Data ,'base64').toString('binary');
var blob = new Blob([byteArray], {type: 'application/pdf'});
window.navigator.msSaveOrOpenBlob(blob); 

我成功打开了一个弹出窗口

enter image description here

但文件已损坏

enter image description here

我做错了什么?有没有更好的方法将base64转换为IE中的字节数组?

1 个答案:

答案 0 :(得分:1)

为了正确解码base64,它必须 base64数据,即它之前没有mimetype信息。

您还需要删除.toString('binary'),以便传递缓冲区而不是字符串。