如何将传入的文件流从Node保存到AngularJS中

时间:2017-10-16 03:17:38

标签: javascript angularjs node.js pdf filesaver.js

在我的快递服务器上,我有一个post-request,它从Amazon S3获取pdf文件并将其发送回angular。这就是我的快速服务器端点的结束方式:

var fileStream = s3.getObject(options).createReadStream();
fileStream.pipe(res);

在我发布的内容的角度方面,并尝试保存此

$http.post(url, data)
.then(function (data, status, headers, config) {
  var file = new Blob([data.data], {type: 'application/pdf'});
  FileSaver.saveAs(file, vm.projectName);
})

我收到的pdf文件无效。我有大约300kb(超过原始文件),我相信它不是pdf而是缓冲区?

我想要实现的目标: - 向服务器发布请求 - 服务器从S3获取文件,将其发送回Angular Controller - Angular Controller将其保存为.png

1 个答案:

答案 0 :(得分:1)

当您进行POST通话时,请在配置中将responseType请求设置为arrayBuffer,以便响应转换为正确。

$http.post(url, data, {responseType: "arraybuffer"})