【问题标题】:Download file from another directory AngularJS从另一个目录 AngularJS 下载文件
【发布时间】:2018-12-19 10:49:37
【问题描述】:

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

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

【问题讨论】:

    标签: javascript angularjs file-handling


    【解决方案1】:

    试试这个:

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

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

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

    【讨论】:

      【解决方案2】:

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

      npm install -g http-server
      

      你可以从你的命令提示符启动服务器

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

      希望这能解决您的问题!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-20
        • 2012-02-15
        • 1970-01-01
        相关资源
        最近更新 更多