node.js - Node js - 快速发送 pdf 作为响应下载

标签 node.js pdf express

您好,我正在尝试设置一个 Node 服务器,以便在用户向其发出发布请求时向用户发送 pdf 文件。

问题是它没有开始下载,但我在控制台中看到了这一点。 enter image description here

这是我的代码

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/

相关文章:

node.js - 如何解决这种情况 Error ERESOLVE could not resolve

node.js - 如何调试 Node.js 服务器?调试器跳过我的断点! (使用VSCode)

Javascript 比较 bool 值

c# - 如何以编程方式填充现有 PDF 文档

node.js - Jade - 模板引擎 : How to check if a variable exists

node.js - uwp Nodejs 本地站点

java - 更改页面时的PdfBox问题

node.js - 使用预定义模板创建 PDF 文件

javascript - 将数据从 React 传递到 Node Express 服务器

javascript - 尝试在 node-js/express 中代理图像