从另一个目录下载文件 AngularJS

Download file from another directory 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}}

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

试试这个:

href="file:///C:\Users\Ali\Pictures\{{ErrorReport}}.txt"

您使用的是相对路径语法和绝对路径语法,

所以我的示例使用了正确的绝对路径

在 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 extension 200 OK 或者你可以 install http-server globally using node's package manager like

npm install -g http-server

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

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

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