使用angular和express JS下载所有文件格式

时间:2016-01-04 10:15:43

标签: angularjs node.js express

我正在努力下载角度js中的所有文件格式。使用我的代码片段,我可以下载文本格式。但对于所有其他格式,我无法打开下载的文件。我的REST服务提供响应#pow { width: 50%; display: inline-block; margin-right: 15px; } #foundhome { width: 38%; display: inline-block; position: absolute; margin-left: 0; } 。我的codebase使用content-type: application/octet-stream调用express.js的res.send(body)方法。下载的图像大小加倍。另外,我可以看到正文的类型是字符串。

如果请求是下载调用,我试图用content-type:application/json调用express.js的res.download(path, filename, callback)函数。这是一种正确的方法吗?另外我不确定在content-type:application/octet-stream函数中发送哪条路径,因为该文件来自服务器端。请帮助我。

我的客户代码:

res.download

1 个答案:

答案 0 :(得分:2)

我的一位同事分享了一个解决我问题的链接。有办法直接代理传入的流。详细信息可在https://github.com/request/request

中找到
req.pipe(request('url')).pipe(resp)

有了这个,流可以被客户端使用,客户端可以调用链接/ url来获取附加文件。

客户代码:

$scope.downloadFile = function(key) {
   var url = 'http://localhost:8080/getFile';
    var element = angular.element('<a/>');
    element.attr({
      href: url,
      target: '_blank',
      download: fileName
    })[0].click();
  });
}