首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从angular下载图片

从angular下载图片
EN

Stack Overflow用户
提问于 2020-02-26 13:54:07
回答 4查看 3.6K关注 0票数 0

在我的angular 8应用程序中,我有图像。如何在angular应用程序中下载图片?

在我的应用程序中有一个列表,并且在列表中有图像。我使用codeigniter作为后端。我想知道如何从angular应用程序下载图像。

EN

回答 4

Stack Overflow用户

发布于 2021-12-31 15:21:51

您可以使用file-saver来完成此任务。我已经比较了这两种方法及其优点。

方法一:如果您正在处理图像文件,此方法将不起作用。它只是在浏览器选项卡中打开图像文件。

TS

代码语言:javascript
复制
No changes needed

HTML

代码语言:javascript
复制
<img width="80" src="https://picsum.photos/200/300">
<a class="btn btn-primary" [href]="https://picsum.photos/200/300" target="_blank">Download</a>

方法2(建议):此方法对所有类型的文件都有帮助。

首先下载文件保护模块:npm install file-saver

TS

代码语言:javascript
复制
import { saveAs} from 'file-saver';
downloadImg(url,name){
  saveAs(url, name+'.png');
}

HTML

代码语言:javascript
复制
<img width="80" src="https://picsum.photos/200/300">
<button (click)="downloadImg('https://picsum.photos/200/300','photo1')">Download</button>
票数 2
EN

Stack Overflow用户

发布于 2020-02-26 13:57:33

使用以下代码,您可以从angular下载图像

代码语言:javascript
复制
const a = document.createElement('a');
a.href = URL.createObjectURL(res);
a.download = title;
document.body.appendChild(a);
a.click();

此外,您还可以使用this演示来下载图像

票数 1
EN

Stack Overflow用户

发布于 2020-02-26 14:02:37

代码语言:javascript
复制
if (window.navigator.userAgent.toLowerCase().indexOf('trident') > -1) { //For IE browser
  const byteCharacters = atob(base64String);
  const byteNumbers = new Array(byteCharacters.length);
  for (var i = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
  }
  const byteArray = new Uint8Array(byteNumbers);
  const blob = new Blob([byteArray], { type: 'image/png' }); // change the file type accordingly
  if (window.navigator && window.navigator.msSaveOrOpenBlob) {
    window.navigator.msSaveOrOpenBlob(blob, "Image.png"); 
  }
} else { //For other browsers
  const linkSource = 'data:image/png;base64,' + base64String;
  const downloadLink = document.createElement("a");
  const fileName = "Image.png";

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60407593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档