我正在开发angularJS项目,当用户单击下载按钮时,我必须触发.txt文件的下载。 但是文件存在于另一个目录中
<a ng-if="ErrorReport && ErrorMessage" href="../../C:\Users\Ali\Pictures\{{ErrorReport}}.txt"
class="btn btn-primary"
download>
Download error report
</a>
(将要下载的)文本文件是错误报告,该错误报告是由API在运行时创建的,因此它始终具有动态名称,这就是我在href中使用{{ErrorReport}}的原因
有什么主意我可以给它引用应用程序目录外的文本文件吗?
答案 0 :(得分:1)
在您的html中使用ng-href
而不是href并给出浏览器可以理解的绝对路径。 ng-href
将有助于绑定范围内容。
<a ng-if="ErrorReport && ErrorMessage" ng-href="file:///C:/Users/Ali/Pictures/{{ErrorReport}}.txt"
class="btn btn-primary"
download>
Download error report
</a>
但是它不能完全解决您的问题。您正在尝试从浏览器访问本地资源。为此,您需要允许浏览器访问您的本地文件。
转到Chrome可执行文件,然后在cmd下运行
.\chrome.exe --allow-file-access-from-files
现在,您可以从本地访问文件,但可以再次访问它的危险。
它将使您的文件系统保持打开状态,以便从浏览器访问。来自任何地方的文档都可以访问本地file:///
资源。
最好在文件所在的文件夹中运行服务器实例,然后像http://localhost:8080/file.txt
这样访问该文件。
您可以为此使用chrome扩展名 200 OK ,也可以使用节点的包管理器之类的install
全局http服务器
npm install -g http-server
在命令提示符下,您可以启动服务器,例如
C:\Users\Ali\Pictures> http-server
希望这可以解决您的问题!
答案 1 :(得分:0)
尝试一下:
href="file:///C:\Users\Ali\Pictures\{{ErrorReport}}.txt"
您正在使用绝对路径的相对路径语法,
所以我的示例使用的是正确的绝对路径