Javascript 角度:在IE中将base64字符串转换为字节数组
我正在尝试将Javascript 角度:在IE中将base64字符串转换为字节数组,javascript,angular,internet-explorer,base64,Javascript,Angular,Internet Explorer,Base64,我正在尝试将base64字符串转换为字节数组,并在IE中将其作为pdf文件打开。唯一的问题是atob在IE中不受支持,因此尝试像这样使用缓冲区: let b64Data = myBase64Url.split(',', 2)[1]; var byteArray = new Buffer(b64Data ,'base64').toString('binary'); var blob = new Blob([byteArray], {type: 'application/pdf'}); window
base64
字符串转换为字节数组,并在IE中将其作为pdf
文件打开。唯一的问题是atob
在IE中不受支持,因此尝试像这样使用缓冲区:
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);
我成功地得到一个弹出窗口来打开文件
但文件已损坏
我做错了什么?是否有更好的方法将IE中的
base64
转换为字节数组?为了正确解码base64,它必须是base64数据,即之前没有mimetype信息
您还需要删除
.toString('binary')
,以便传递一个缓冲区而不是字符串。是myBase64Url
只是普通的base64数据,还是以mime类型作为前缀?您对atob有什么问题?atob在IE中不受支持。我的base64 URL前面有pdf mimetype。这就是问题所在--需要先删除mime类型,然后才能正常工作。删除了mimetype,并尝试了相同的代码。唯一更好的是打开一个空白的pdf文件。无法查看任何数据。请参阅问题中的更新代码。您可能需要删除.toString('binary')代码>以及