使用AngularJS下载zip文件

时间:2014-04-28 08:57:58

标签: javascript ajax angularjs

当我通过浏览器访问此网址时,它会要求我下载文件

https://some-domain.com/api/v1/file/log123.tar.gz?type=log

我需要从angularjs http request

下载

我为此写了一个工厂,但没有下载

请求获得200状态,但仍然在firebug中显示加载程序

app.factory('File', ['$http','GENERAL_CONFIG', function($http, GENERAL_CONFIG) {
    var API_URL = GENERAL_CONFIG.BASE_API_URL;

    API_URL = API_URL + 'filetransfer/';

    return {
        download: function(filename, type,successcallback, errorcallback){
            var apiurl = API_URL + filename + '?type='+type
            $http.get(apiurl,{
                headers: {
                    "Content-Type": "application/x-download;"
                }
            }).success(successcallback).error(errorcallback);
        }
    }
}]);

1 个答案:

答案 0 :(得分:0)

这是一篇很老的帖子,但我会回应目前的需求。

您的http请求应该有一个额外的标头。 设置responseType:“arraybuffer”。

然后您可以将该响应转换为blob obj。并将其传递给回调:URL.createObjectURL(new Blob([response]));