通过快递发送pdf到js客户端并下载

时间:2018-01-16 16:28:48

标签: javascript node.js express pdf

我正在尝试使用客户端从我的快速服务器发送pdf文件,如下所示:

  res.setHeader('Content-Type', 'application/pdf');
  res.setHeader('Content-Disposition', 'attachment; filename=test.pdf');
  fs.createReadStream('test.pdf').pipe(res);

然后在客户端,我试图通过将结果字符串转换为URL并从那里下载来下载它。

var blob = new Blob[pdfString], { type: 'application/pdf' });
var url = window.URL;
var downloadUrl = url.createObjectURL(blob);

然而,生成的文件是两个空页面,我相信它可能是因为生成的文件是url是为了大?如果有人能弄明白这里有什么问题,或者告诉我一个更好的方法,那将是非常棒的。

1 个答案:

答案 0 :(得分:0)

我能够使用XMlHttpRequest来解决这个问题:

   var req = new XMLHttpRequest();
      req.open('GET', path , true);
      req.responseType = "arraybuffer";
      req.onload = (event) => {
        downloadPdf(req.response); //This is where I convert to blob
      }
      req.send();