ReactJs-Chrome中的触发文件下载

时间:2019-09-03 13:15:52

标签: javascript reactjs

我正在尝试在我的React应用程序中添加指向网络文件的链接,以便单击该文件时就可以下载它。像这样:

<a href="\\server\Test\test.xlsx">Direct link Test</a>

在常规的html页面中它可以正常工作,但是在Chrome的ReactJS应用中,出现错误:

  

不允许加载本地资源:file://server/Test/test.xlsx

对此有任何建议或解决方法吗?我尝试了各种正斜杠,反斜杠,window.open等。

更新: 当我在浏览器中检查链接时,该路径似乎以站点根URL开头。因此,当我将鼠标悬停在代码检查器中的路径上时,会看到以下内容:

  

http://some-intranet-site.com/\ \ server \ Test \ test.xlsx

“ / \\”不是错字。

3 个答案:

答案 0 :(得分:0)

尝试将target="_blank"添加到标签中

注意:正如其他人提到的那样,这只是一项工作。解决此问题的最佳方法是向端点发出http请求。

答案 1 :(得分:0)

使用定位标记上的下载属性。

<a href="\\server\Test\test.xlsx" download>Direct link Test</a>

请记住,这不是实现此目的的好方法。诸如此类的最佳做法是对端点进行http调用,或使用javascript的fetch方法

答案 2 :(得分:-1)

首先导入文件,然后尝试处理下载功能。检查以下代码。

import template from '../server/Test/test.xlsx';
...
...
...
<input type="button" onClick={() => setTimeout(() => window.open(template), 100)} value="Download file" />

这将为您服务!