相关疑难解决方法(0)

如何在JavaScript中将字符串编码为Base64?

我有一个PHP脚本,可以将PNG图像编码为Base64字符串.

我想用JavaScript做同样的事情.我知道如何打开文件,但我不知道如何进行编码.我不习惯使用二进制数据.

javascript base64

745
推荐指数
27
解决办法
102万
查看次数

JSON使用JavaScript编码/解码base64编码/解码

JavaScript中是否有JSON编码/解码base64编码/解码功能?

javascript base64 json

22
推荐指数
2
解决办法
6万
查看次数

在浏览器中解码 Base64 编码的 PDF 内容

我们在后端 (PHP) 中使用dompdf将 HTML 转换为 PDF 。dompdf 生成的输出是 Base64 编码的

$output = $dompdf->output();
base64_encode($output);
Run Code Online (Sandbox Code Playgroud)

这个 Base64 编码的内容作为文件保存在服务器上。当我们像这样解码这个文件内容时:

cat /tmp/55acbaa9600f4 | base64 -D > test.pdf
Run Code Online (Sandbox Code Playgroud)

我们得到一个合适的 PDF 文件。

但是当我们将 Base64 内容作为 JSON 对象内的字符串值传输到客户端时(服务器提供了 RESTful API...):

{
  "file_data": "...the base64 string..."
}
Run Code Online (Sandbox Code Playgroud)

并使用 atob() 对其进行解码,然后创建一个 Blob 对象以稍后下载文件,PDF 始终为“空”/损坏。

$scope.downloadFileData = function(doc) {
  DocumentService.getFileData(doc).then(function(data) {
    var decodedFileData = atob(data.file_data);
    var file = new Blob([decodedFileData], { type: doc.file_type });
    saveAs(file, doc.title + '.' + doc.extension);
  });
};
Run Code Online (Sandbox Code Playgroud)

当我们记录解码的内容时,似乎内容被“破坏”了,因为几个符号与我们使用base64 -D在服务器上解码内容时不一样。

当我们编码/解码简单文本/普通文档的内容时,它按预期工作。但是所有二进制(或非 ASCII 格式)都不起作用。 …

javascript pdf base64 encoding json

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

base64 ×3

javascript ×3

json ×2

encoding ×1

pdf ×1