【问题标题】:how to download file from server on ng-click in angular?如何在 ng-click 上以角度从服务器下载文件?
【发布时间】:2015-10-16 00:28:50
【问题描述】:

我有一个将文件下载到本地系统的操作。 文件可以是jpeg pdf,也可以是word。

现在,当我使用 ASP.Net 运行此操作时,文件已下载。但是,当我在 ng-click 按钮上调用此操作时。我没有收到任何错误,也没有下载文件。

代码片段

$scope.downloadFile = function () {
    debugger;
    $http(
        {
            url: '/ControllerName/DownloadFile',
            method: 'POST',
            data: {},
            responseType: 'arraybuffer' ,
        })
    .success(function (data, status) {
        if (status == 200) {
            var file = new Blob([data], { type: 'Application/msword' });
            saveAs(file, 'test.docx');
            alert('File downloaded');

        }
    })
    .error(function () {
        alert("Error");
    })
}

在这个场景中,很明显我会得到一个错误 saveAs Not defined。因此,我包含了 filesaver.js

现在我不确定如何将 fileSaver 依赖项包含到我的控制器中。因为如果我只是通过以下方式包含:-

app.module('myApp',['fileSaver']);

我再次遇到错误。

如何摆脱这个错误或者是否有任何其他方式下载文件?

注意:文件可以是 jpeg、word、pdf、zip 我正在使用按钮标签

【问题讨论】:

  • FileSaver 不是角度模块,因此您不需要注入该依赖项。您只需要将 filesaver.min.js 包含在 html 的脚本标记中,这应该可以工作。
  • @DavidRego 是的,你是对的..

标签: javascript asp.net angularjs


【解决方案1】:

这里不需要注入任何角度注入,只需将文件直接包含在您的项目中即可工作

你可以包含这个js文件来下载

https://github.com/eligrey/FileSaver.js/blob/master/FileSaver.js

app.js

app.module('myApp',[]);

从 app.js 中移除 fileSaver

【讨论】:

    【解决方案2】:

    Angular File Saver 可用。请查看希望对您有帮助

    【讨论】:

      猜你喜欢
      • 2019-12-15
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      • 2019-12-21
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多