【发布时间】:2017-04-12 21:49:47
【问题描述】:
用户上传保存到 mongo 的 pdf 文件作为二进制文件,文件很小 (GridFS。
如何将pdf下载回来? 这是我尝试过的: 我正在从 mongo 中提取二进制文件并将其发送回用户。我正在使用 Hapi,将其发送回去就像
res(binaryMongoPDF).code(200);
我在客户端接收到存储在 mongo 中的相同数据。根据我所阅读的内容,我应该将二进制文件转换为 blob:
var blob = new Blob([data], { type: 'application/pdf' });
我尝试过将responseType 设置为arraybuffer:
$http.get(API_URL + "/cv/me", {responseType:'arraybuffer'})
然后让用户下载它,我正在使用Angular FileSave 简化它,但我也尝试过使用香草创建标签的方法:
FileSaver.saveAs(r, 'text.pdf');
我返回的文件无法以 pdf 格式打开。
我观察到我在 mongo 中保存的二进制文件的大小为 73262,但 blob 的大小为 97426。我不知道这是否正常。
【问题讨论】:
-
API 响应的
Content-type标头是什么? -
@georgeawg 无需我手动设置 -
"application/json; charset=utf-8"。将其设置为"application/pdf"不会改变任何内容。 -
我也有同样的情况。找到解决方案了吗?
标签: angularjs mongodb pdf hapijs