首页 > 解决方案 > 从另一个目录 AngularJS 下载文件

问题描述

我正在开发一个 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}} 的原因

知道如何给它引用应用程序目录之外的文本文件吗?

标签: javascriptangularjsfile-handling

解决方案


在你的 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

现在您可以从本地访问文件,但又是Dangerous

它将使您的文件系统保持打开状态,以便从浏览器访问。来自任何地方的文档都可以访问本地file:///资源。

最好在文件所在的文件夹中运行服务器实例并访问该文件,例如http://localhost:8080/file.txt.

您可以为此使用 chrome 扩展200 OK,或者您可以install使用节点的包管理器全局 http-server,例如

npm install -g http-server

并从您的命令提示符下,您可以启动服务器

C:\Users\Ali\Pictures> http-server

希望这能解决你的问题!!


推荐阅读