我从数据库中获取了一个 base64 格式的图像,我想允许用户下载该图像。最好的方法是什么?
原文由 Amichay_Atias 发布,翻译遵循 CC BY-SA 4.0 许可协议
我从数据库中获取了一个 base64 格式的图像,我想允许用户下载该图像。最好的方法是什么?
原文由 Amichay_Atias 发布,翻译遵循 CC BY-SA 4.0 许可协议
在服务文件上
downloadimage(imagePath) {
return this.http
.get(
imagePath,
{
responseType: "blob"
}
)
.pipe(
map(res => {
return {
filename: row.name,
data: res
};
})
);
}
}
在 ts 文件上从服务文件订阅 downloadImage()
downloadimage(path).subscribe(res => {
let url = window.URL.createObjectURL(res.data);
let a = document.createElement("a");
document.body.appendChild(a);
a.setAttribute("style", "display: none");
a.href = url;
a.download = "test.png";
a.click();
window.URL.revokeObjectURL(url);
a.remove();
});
原文由 Rohit Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
6 回答822 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
考虑到您将此问题标记为 Angular 问题,我想出于某种原因,您不想公开以原始格式提供图像的端点,然后创建指向它的链接。
如果您正在寻找特定于 Angular 的解决方案,则没有。但是,下面描述了一个纯 javascript 解决方案。它可用于预加载您的图像,以便您的用户能够在需要时立即获取图像。
你可以在这里测试: https ://jsfiddle.net/pxm0eyzs/2/