您好,我正在尝试设置一个 Node 服务器,以便在用户向其发出发布请求时向用户发送 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();
});
最佳答案
我在错误的地方寻找答案,我只需要在客户端代码中以正确的方式处理来自服务器的文件。
$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)
})
关于node.js - Node js - 快速发送 pdf 作为响应下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34175562/