【问题标题】:How to download pdf file from url in node.js?如何从node.js中的url下载pdf文件?
【发布时间】:2014-11-14 17:52:29
【问题描述】:

我正在创建一个应用程序来从 url 下载 pdf 文件并在我的仪表板页面中以网格方式显示。

我正在使用带有 express 框架的 node.js。

exports.pdf = function(req, response) {
    var url ="http://www.ieee.org/documents/ieeecopyrightform.pdf";

    http.get(url, function(res) {
     var chunks = [];
     res.on('data', function(chunk) {
     console.log('start');
     chunks.push(chunk);
    });

    res.on("end", function() {
      console.log('downloaded');
      var jsfile = new Buffer.concat(chunks).toString('base64');
      console.log('converted to base64');
      response.header("Access-Control-Allow-Origin", "*");
      response.header("Access-Control-Allow-Headers", "X-Requested-With");
      response.header('content-type', 'application/pdf');
     response.send(jsfile);
    });
    }).on("error", function() {
   console.log("error");
   }); 
};

【问题讨论】:

  • 贴出你正在使用的代码

标签: node.js pdf express


【解决方案1】:

这会有帮助。

response.setHeader("Content-Type", "text/pdf");

This Link will help

【讨论】:

    【解决方案2】:

    对于那些希望下载 PDF 服务器端的人,这与 OP 的用例有点不同,下面是我使用 request npm 模块的方法:

    const fs = require("fs");
    const request = require("request-promise-native");
    
    async function downloadPDF(pdfURL, outputFilename) {
        let pdfBuffer = await request.get({uri: pdfURL, encoding: null});
        console.log("Writing downloaded PDF file to " + outputFilename + "...");
        fs.writeFileSync(outputFilename, pdfBuffer);
    }
    
    downloadPDF("https://www.ieee.org/content/dam/ieee-org/ieee/web/org/pubs/ecf_faq.pdf", "c:/temp/somePDF.pdf");
    

    【讨论】:

    • 这不起作用,它给了我带有 pdf 扩展名但无法打开的纯文本文件
    • @James 它不应该打开。它只是应该将文件保存为 c:\temp\somePDF.pdf。如果您希望它在您的 PDF 查看器中打开,那完全是另一个问题。
    【解决方案3】:

    我用来在 node js 中下载 pdf 的简单解决方案是通过 npm i node-downloader-helper 并添加下载网址:

    const { DownloaderHelper } = require('node-downloader-helper');
    
    const download = new DownloaderHelper('url', __dirname);
    download.on('end', () => console.log('Download Completed'))
    download.start();
    

    【讨论】:

      猜你喜欢
      • 2023-02-04
      • 1970-01-01
      • 2018-10-06
      • 1970-01-01
      • 2019-07-14
      • 2020-11-04
      • 1970-01-01
      • 2019-12-16
      • 2017-08-13
      相关资源
      最近更新 更多