如何从网址(包含pdf)获取pdf文件并将其提供给我的客户?

时间:2018-06-22 06:02:11

标签: javascript node.js api

这是我的代码,用于从提到的pdf中获取uri

app.route("/downloadpdf").get(function(req,res){

    var requestParameter = {
        uri: "http://www.nitdgp.ac.in/career17/Revised%20advertisement%20for%20faculty.pdf",
        method: "GET",
        headers : {
            'content-type' : 'application/pdf'
        }
    }
    console.log(requestParameter.uri);
    request(requestParameter, function(error, response, body) {
        var buf = Buffer.from(body,'base64');
        res.type('pdf').send(buf);
    });
})

1 个答案:

答案 0 :(得分:0)

您可以在请求中将编码设置为 null ,以确保下载二进制内容:

app.route("/downloadpdf").get(function(req,res){

    var requestParameter = {
        uri: "http://www.nitdgp.ac.in/career17/Revised%20advertisement%20for%20faculty.pdf",
        method: "GET",
        headers : {
            'content-type' : 'application/pdf'
        },
        encoding: null
    }

    // The body will be a Buffer object
    request(requestParameter, function(error, response, body) {
        res.type('pdf').send(body);
    });
})

从“请求”文档中:

  • encoding-用于响应数据的setEncoding的编码。如果为null,则将正文作为Buffer返回。其他任何内容(包括未定义的默认值)都将作为编码参数传递给toString()(这意味着默认情况下它实际上是utf8)。 (注意:如果需要二进制数据,则应将编码设置为null。)