如何将来自 Node 的传入文件流保存到 AngularJS

How to save an incoming filestream from Node into AngularJS

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

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

在 angular 方面,我正在 post 并试图挽救这个

$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 而是一个缓冲区?

我想要达到的目标: - Post 请求服务器 - 服务器从 S3 获取文件,将其发送回 Angular 控制器 - Angular 控制器将其保存为 .png

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

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