使用AngularJS从客户端浏览器获取文件下载完成响应

时间:2015-09-15 06:49:30

标签: angularjs download

我想在客户端浏览器完成每个(成功/失败)文件下载后得到响应。我正在使用AngularJS作为我的前端。我很困惑。所以任何人都告诉我,我该怎么办?

1 个答案:

答案 0 :(得分:0)

function download(url, callback, encoding){
        var request = http.get(url, function(response) {
            if (encoding){
                response.setEncoding(encoding);
            }
            var len = parseInt(response.headers['content-length'], 10);
            var body = "";
            var cur = 0;
            var obj = document.getElementById('js-progress');
            var total = len / 1048576; //1048576 - bytes in  1Megabyte

            response.on("data", function(chunk) {
                body += chunk;
                cur += chunk.length;
                obj.innerHTML = "Downloading " + (100.0 * cur / len).toFixed(2) + "% " + (cur / 1048576).toFixed(2) + " mb\r" + ".<br/> Total size: " + total.toFixed(2) + " mb";
            });

            response.on("end", function() {
                callback(body);
                obj.innerHTML = "Downloading complete";
            });

            request.on("error", function(e){
                console.log("Error: " + e.message);
            });

        });
    };

尝试使用此功能,因为我不知道你到目前为止做了什么。或者,您也可以尝试使用HTML5的progress元素。 Support for Progress in browsers