我正在使用 Web 服务来获取 Base64 字符串,并且需要以 PDF 形式向用户显示该文档。
var charactersArray = atob(base64String);
var byteNumbers = new ArrayBuffer(charactersArray.length);
for (var i = 0; i < charactersArray.length; i++) {
byteNumbers[i] = charactersArray.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
var file = new File([byteArray], "file.pdf", {
type: "application/pdf",
});
然后我使用这个"file"来创建一个带有
的网址var url = URL.createObjectURL(file);
我正在使用 ng-click 指令在按钮中打开此网址,但我正在加载 PDF。
最佳答案
您需要将字符代码写入byteArray
而不是ArrayBuffer
var charactersArray = atob(base64String);
var len = charactersArray.length;
var byteNumbers = new ArrayBuffer(len);
var byteArray = new Uint8Array(byteNumbers);
for (var i = 0; i < len; i++) {
byteArray[i] = charactersArray.charCodeAt(i);
}
var file = new File([byteArray], "file.pdf", {
type: "application/pdf",
});
关于javascript - 从 Base64 字符串生成文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52895478/