如何在角度 5 / 6 中单击按钮时从 url 下载文件
How to download a file from a url when a button is clicked in angular5 / 6
我有一个 url 例如:abc.net/files/test.ino
需求是在angular5或6
中通过按钮点击事件下载一个.INO文件
您可以通过html使按钮看起来像锚元素,例如:
<a href="abc.net/files/test.ino">download</a>
您也可以尝试创建一个动态锚元素:
let link = document.createElement('a');
link.setAttribute('type', 'hidden');
link.href = 'abc.net/files/test.ino';
link.download = path;
document.body.appendChild(link);
link.click();
link.remove();
您可以创建一个锚标记来在按钮单击事件上下载文件
downloadMyFile(){
const link = document.createElement('a');
link.setAttribute('target', '_blank');
link.setAttribute('href', 'abc.net/files/test.ino');
link.setAttribute('download', `products.csv`);
document.body.appendChild(link);
link.click();
link.remove();
}
现在从您的按钮调用此函数
<button (click)="downloadMyFile()">download File<button>
如果您需要直接下载而不打开文件,那么您必须在chrome/opera中进行设置,如果您使用这些浏览器,
设置 -> 高级 -> 隐私和安全 -> 内容设置 -> PDF文档,
你看"Download PDF files instead of automatically opening them in Chrome"启用它。
之后将下面的代码放入您的 HTML 文件中,
<a [href]="fileURL" target="_blank" class="btn btn-border" download="fileName.pdf">Download</a>
添加到 Hussains 的答案,但只是用 Renderer2 来做,因为不建议直接使用文档。
import { Renderer2 } from '@angular/core'
export class SomeComponent {
constructor(private renderer: Renderer2) {}
downloadFile() {
const link = this.renderer.createElement('a');
link.setAttribute('target', '_blank');
link.setAttribute('href', 'abc.net/files/test.ino');
link.setAttribute('download', `products.csv`);
link.click();
link.remove();
}
}
我有一个 url 例如:abc.net/files/test.ino 需求是在angular5或6
中通过按钮点击事件下载一个.INO文件您可以通过html使按钮看起来像锚元素,例如:
<a href="abc.net/files/test.ino">download</a>
您也可以尝试创建一个动态锚元素:
let link = document.createElement('a');
link.setAttribute('type', 'hidden');
link.href = 'abc.net/files/test.ino';
link.download = path;
document.body.appendChild(link);
link.click();
link.remove();
您可以创建一个锚标记来在按钮单击事件上下载文件
downloadMyFile(){
const link = document.createElement('a');
link.setAttribute('target', '_blank');
link.setAttribute('href', 'abc.net/files/test.ino');
link.setAttribute('download', `products.csv`);
document.body.appendChild(link);
link.click();
link.remove();
}
现在从您的按钮调用此函数
<button (click)="downloadMyFile()">download File<button>
如果您需要直接下载而不打开文件,那么您必须在chrome/opera中进行设置,如果您使用这些浏览器,
设置 -> 高级 -> 隐私和安全 -> 内容设置 -> PDF文档, 你看"Download PDF files instead of automatically opening them in Chrome"启用它。
之后将下面的代码放入您的 HTML 文件中,
<a [href]="fileURL" target="_blank" class="btn btn-border" download="fileName.pdf">Download</a>
添加到 Hussains 的答案,但只是用 Renderer2 来做,因为不建议直接使用文档。
import { Renderer2 } from '@angular/core'
export class SomeComponent {
constructor(private renderer: Renderer2) {}
downloadFile() {
const link = this.renderer.createElement('a');
link.setAttribute('target', '_blank');
link.setAttribute('href', 'abc.net/files/test.ino');
link.setAttribute('download', `products.csv`);
link.click();
link.remove();
}
}