我正在尝试在客户端使用AngularJS发送用户请求的文件内容。
这是我从节点发送文件的方式:
res.download(filePath, req.param('fileName'));
这就是我在Angular中阅读和保存文件的方式:
$http.get('/attachment/' + req.fileName, {responseType: 'arraybuffer'}).success(function (data, status, headers, config) {
var element = angular.element('<a/>');
var file = '';
var bytes = new Uint8Array(data);
for (var i = 0; i < bytes.byteLength; i++) {
file += String.fromCharCode(bytes[i]);
}
element.attr({
href: 'data:application/force-download,' + encodeURI(file),
target: '_blank',
download: fileName
})[0].click();
});
它似乎工作但仅适用于普通文件(TXT,CSV等),但在请求PDF客户端获取具有正确页数的文件但所有页面都是空白之后。 我认为内容编码一定有问题。
有没有人遇到类似的问题并且已经修好了?