如何从node.js中的URL下载PDF文件?

abd*_*rik 5 pdf node.js express

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

我正在使用带有快速框架的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");
   }); 
};
Run Code Online (Sandbox Code Playgroud)

Rya*_*ton 14

对于那些希望下载 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");
Run Code Online (Sandbox Code Playgroud)

  • 这不起作用,它给了我带有 pdf 扩展名的纯文本文件,但无法打开 (2认同)

小智 2

这会有帮助。

response.setHeader("Content-Type", "text/pdf");
Run Code Online (Sandbox Code Playgroud)

这个链接会有帮助