【发布时间】:2013-06-04 11:33:55
【问题描述】:
我有一个 base64 字符串,文件类型。文件类型可以是图像、文本甚至 pdf。我需要显示download 链接,当用户点击它应该开始下载预期的文件。
简而言之,服务器将文件作为 base64 字符串发送给我,我需要将其保存为浏览器上的文件。如何将base64字符串保存为浏览器上的文件?如果解决方案也适用于 IE9,那将是最好的。
【问题讨论】:
标签: javascript file base64
我有一个 base64 字符串,文件类型。文件类型可以是图像、文本甚至 pdf。我需要显示download 链接,当用户点击它应该开始下载预期的文件。
简而言之,服务器将文件作为 base64 字符串发送给我,我需要将其保存为浏览器上的文件。如何将base64字符串保存为浏览器上的文件?如果解决方案也适用于 IE9,那将是最好的。
【问题讨论】:
标签: javascript file base64
您可以使用download.js。
download(base64String, filename, mimeType)
【讨论】:
改编自 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();
}
【讨论】:
你可以通过js来下载pdf。
用途:
document.location = 'data:application/pdf;base64,' + base64String
【讨论】:
当浏览器请求资源时出现相应的响应标头时,您将获得所需的效果(网页显示链接,当用户单击时,会弹出另存为对话框):
Content-Disposition:附件;文件名="你的文件名.extension"
如果您从服务器获取文件作为嵌入在 html 中的 base64 字符串,也许您可以跳过嵌入并简单地在服务器上嵌入指向文件的直接链接,让服务器将其提供给用户.
【讨论】: