javascript - 从 Base64 字符串生成文件

标签 javascript base64

我正在使用 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/

相关文章:

javascript - 如何在网页上全屏显示幻灯片?

javascript - Jquery Javascript将if语句变成case语句不起作用

javascript - 如何在页面重新加载时保持 jquery 脚本更改?

java - 将 Base64 字符串从 xml 文件复制到文本文件时出现问题

c++ - 在 C++ 中解码以 base64 编码的大量数据

javascript - D3 版本 4 中的单元测试转换

javascript - 如何打印弹窗内容和主要内容

android - 图片/jpeg 的 Base64 解码;android 中的 base64

oauth - 为什么要对 Authorization header 进行 base64 编码?

jquery - 在 Javascript/jQuery 中解码 base64 文件以供下载