【问题标题】:Send pdf via express to js client and download通过快递发送pdf到js客户端并下载
【发布时间】:2018-01-16 16:28:48
【问题描述】:

我正在尝试使用客户端从我的快递服务器发送 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 太大?如果有人能找出这里出了什么问题或告诉我更好的方法,那就太棒了。

【问题讨论】:

  • 你是用ajax获取二进制数据吗?
  • 这可能会有所帮助:stackoverflow.com/questions/31105846/…
  • 我正在尝试找出一种可以使用“请求”http 客户端的方法
  • @HaroonKhan 谢谢,但我已经设置了服务器端,我正在尝试弄清楚如何在客户端将响应下载为 pdf 文件
  • 我能够使用 XmlHttpRequest 弄清楚:

标签: javascript node.js express pdf


【解决方案1】:

我能够使用 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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-05
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多