Angular 2 - 点击事件下载文件

6

我希望能够在任何地方找到答案,希望有人能帮忙。

我在模板中定义了一个Angular2的click事件,在表格单元格内:

<td (click)="click2Download()">fileName.txt</td>

在typescript组件中,我需要帮助定义一个名为click2Download()的方法,该方法将自动开始下载fileName.txt到客户端浏览器。注意:文件位于同一域中,例如:
http://example.com/fileName.txt

有没有使用Angular2实现这个的方法?

1个回答

7

您尝试过:window.location.href = '...';吗?

为了强制下载文件,您应该使用html属性:<a target="_self" href="somefile.txt" download="somefile.txt">


谢谢你的帮助。我刚试了一下,虽然对于zip文件来说很好用,但对于文本文件来说不起作用。它会将用户重定向到文本文件的url而不是下载文件。 - jjj
1
可以使用HTML下载属性强制下载:http://www.w3schools.com/tags/att_a_download.asp 或通过更改.htaccess文件中的标头来强制下载。 - spa900
1
是的,那个方法可以运行,但是我需要在TypeScript方法内部执行此操作,因为在开始下载之前还有其他处理(获取文件名等)需要进行... - jjj
下次尽量在问题中明确说明。你可以在这里找到所需的内容:https://dev59.com/mWQn5IYBdhLWcg3w36M1#28541187 - spa900
这就是在Angular1中的做法,你知道在Angular2中有没有做法吗? - jjj
很不幸,这需要使用第三方库,并且似乎是一种过时的实现目标的方式,这还是在 Angular2 处于 alpha/beta 阶段的时候。 - jjj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接