用户将pdf文件上传为
如何下载pdf? 这是我尝试过的: 我从mongo中提取二进制文件并将其发送回用户。我正在使用 Hapi ,将其发送回去就像
一样res(binaryMongoPDF).code(200);
我正在接收客户端上存储在mongo中的相同数据。根据我读过的内容,我应该将二进制文件转换为blob:
var blob = new Blob([data], { type: 'application/pdf' });
我尝试过将responseType
设置为arraybuffer
,然后将其设置为<{1}}:
$http.get(API_URL + "/cv/me", {responseType:'arraybuffer'})
然后让用户下载它,我用Angular FileSave
简化了这一点,但我也尝试使用vanilla标记创建方法:
FileSaver.saveAs(r, 'text.pdf');
我要回复的文件无法以pdf格式打开。
我观察到的是我在mongo中保存的二进制文件的大小 73262 ,但blob的大小 97426 。我不知道这是否正常。
答案 0 :(得分:0)
如果服务器将文件作为数据URL返回:
data:application/octet-stream;base64,iVBORw0KGgoAAAANSUhEUgA
使用此指令:
angular.module("myApp").directive("xdHref", function() {
return function linkFn (scope, elem, attrs) {
scope.$watch(attrs.xdHref, function(newVal) {
newVal && elem.attr("href", newVal);
});
};
});
使用数据
设置href
标记的<a>
属性
<a download="data_{{files[0].name}}" xd-href="data">
<button>Download data</button>
</a>