首页 > 解决方案 > 从 URL 跨浏览器自动下载文件

问题描述

我正在尝试从我的 BE 提供给我的 URL 下载文件。我有需要文件 GUID 和一次性访问令牌并返回带有标题的文件的端点

Content-Disposition:attachment; filename="testfile.txt"
Content-Type:text/plain; charset=UTF-8

和 URL 看起来像这样,它是由 RXJS 动态构建的,所以我不能只分配到带有下载属性的 HTML

`/document/${guid}/download?token=${token}`

我发现了很多关于这个主题的线程,但他们中的大多数都建议使用窗口类函数,如打开、断言、位置等。这些函数实际上并不能以我想要的方式在所有浏览器中运行 - 自动开始下载文件而无需打开额外的选项卡等。我还找到了带有 DOM 操作的解决方案,例如带有元素的 appendChild 和给定的 URL,然后将其删除,但这个解决方案对我来说似乎很难看。

所以我的问题是,有没有什么优雅的方法可以强制浏览器下载文件而不在额外的选项卡中打开它,没有 DOM 操作和跨浏览器(因为下载属性在 Safari 上不起作用)或导入第 3 方库?

标签: javascriptangularfiledownload

解决方案


推荐阅读