您好我正在尝试设置节点服务器,以便在用户向其发送请求时向用户发送pdf文件。
这是我的代码
app.post('/', function(req, res, next) {
mypdf.toPdf(__dirname + "/my-invoice.pdf", function (err, data) {
var stream = fs.createReadStream(data.stream.path);
stream.pipe(res);
stream.on('data', function(data) {
res.write(data);
});
stream.on('end', function() {
res.end();
});
});
});
我也尝试过使用一些不同的标题设置
app.use(function(req, res, next) {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.setHeader("Content-Type", "application/force-download");
res.setHeader("Content-Transfer-Encoding", "binary");
res.setHeader("Content-Disposition","attachment; filename=\"test.pdf\"");
next();
});
答案 0 :(得分:0)
我在错误的地方寻找答案,我只需要以正确的方式处理来自服务器的文件。
$http.get('https://dam-pdf.herokuapp.com/15-0123', {responseType:'arraybuffer'}).success(function(response){
var file = new Blob([response], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(file);
$scope.content = $sce.trustAsResourceUrl(fileURL);
window.open($scope.content)
})