Javascript 如何将传入的文件流从节点保存到AngularJS

Javascript 如何将传入的文件流从节点保存到AngularJS,javascript,angularjs,node.js,pdf,filesaver.js,Javascript,Angularjs,Node.js,Pdf,Filesaver.js,在我的express服务器上,我有一个post请求,它从AmazonS3获取一个pdf文件并将其发送回angular。以下是我的express server端点的结尾: var fileStream = s3.getObject(options).createReadStream(); fileStream.pipe(res); 从角度看,我正在发布并试图保存这些内容 $http.post(url, data) .then(function (data, status, headers, co

在我的express服务器上,我有一个post请求,它从AmazonS3获取一个pdf文件并将其发送回angular。以下是我的express server端点的结尾:

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

当您进行POST调用时,将请求的
responseType
设置为
arrayBuffer
内部配置,以便将响应正确转换为

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

谢谢你,先生!正是我需要的