使用角度js在前端下载文件

时间:2015-04-02 12:39:47

标签: javascript angularjs

点击文件名旁边的下载按钮,我从后端获取文件内容。此内容以字节为单位。该文件可以是任何类型。如何将从后端接收的数据转换为文件并在接收响应时自动下载(文件内容)。新的html和angular js。需要任何指针或建议:)

1 个答案:

答案 0 :(得分:1)

您需要让后端告诉您的前端文件的位置,然后前端可以放置文件的链接。后端应该可能为此文件生成唯一的哈希名称。

只要后端网络服务器配置了正确的mime类型,实际文件就可以作为Rest GET请求的一部分返回。

因此,在您的控制器中,您可以调用服务来获取文件路径:

SomeController.$inject = ['$http'];
var SomeController = function($http) {

    var self = this;
    $http.get('/download-file-path').then(function(path) {
        self.path = path; 
    }

}

然后在你看来

<div ng-controller='SomeController as vm'>
    <a ng-href="{{vm.path}}">Download</a>
</div>

当角度调用GET: /download-file-path时,后端应返回文件的名称和路径,例如/download/file-7dje79ae.xml。然后angular将此路径放在a链接中。当用户点击下载按钮时,用户浏览器将向/download/file-7dje79ae.xml发出请求并下载文件。