从URL跨浏览器自动下载文件

时间:2019-05-16 08:38:41

标签: javascript angular file download

我正在尝试从我的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操作的解决方案,例如带有元素和给定URL的appendChild并随后将其删除,但是这种解决方案对我来说似乎很丑。

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

0 个答案:

没有答案