18

我有一个 base64 字符串,文件类型。文件类型可以是图像、文本甚至 pdf。我需要显示download链接,当用户单击它应该开始按预期文件下载。
简而言之,服务器将文件作为 base64 字符串发送给我,我需要将其保存为浏览器上的文件。如何将base64字符串保存为浏览器上的文件?如果解决方案也适用于 IE9,那将是最好的。

4

4 回答 4

16

您可以使用download.js

download(base64String, filename, mimeType)
于 2015-10-12T08:48:22.527 回答
11

改编自https://gist.github.com/RichardBray/23decdec877c0e54e6ac2bfa4b0c512f以在 Firefox 上工作。

function downloadBase64File(contentBase64, fileName) {
    const linkSource = `data:application/pdf;base64,${contentBase64}`;
    const downloadLink = document.createElement('a');
    document.body.appendChild(downloadLink);

    downloadLink.href = linkSource;
    downloadLink.target = '_self';
    downloadLink.download = fileName;
    downloadLink.click(); 
}

于 2019-09-05T11:46:46.790 回答
8

您可以从 js 执行此操作以下载 pdf。

利用:

document.location = 'data:application/pdf;base64,' + base64String

于 2015-10-07T08:15:11.757 回答
1

当浏览器请求资源时出现相应的响应标头时,您将获得所需的效果(显示链接的网页,并且当用户单击时,弹出另存为对话框):

内容处置:附件;文件名="你的文件名.extension"

如果您从服务器获取文件作为嵌入到您的 html 中的 base64 字符串,也许您可​​以跳过嵌入并简单地嵌入到服务器上文件的直接链接,让服务器将其提供给用户。

有关内容处置的相关 SO

于 2013-06-08T06:01:36.273 回答