从另一个目录AngularJS下载文件

时间:2018-07-11 11:47:36

标签: javascript angularjs file-handling

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

有什么主意我可以给它引用应用程序目录外的文本文件吗?

2 个答案:

答案 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"

您正在使用绝对路径的相对路径语法,

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