Skip to content Skip to sidebar Skip to footer

How To Download A Pdf File Through Javascript?

My javascript code makes the following AJAX request to my node.js server: var url = '/node/download'; var downloadRequest = new goog.net.XhrIo(); downloadRequest.headers.set('conte

Solution 1:

For downloading a pdf file saved on the server

Make the request like this from the client javascript:

var reqObj = newXMLHttpRequest();
reqObj.open('GET','getpdf',true);     // 'getpdf' is the URI to recongize your request at the server
reqObj.send();

reqObj.onreadystatechange = function() {
    var resObj = this;
    if(resObj.readyState == resObj.DONE) {
        if (resObj.status != 200) {
            console.log("pdf can't be downloaded");
        } elseif (resObj.status == 200){
            var resTxt = reqObj.responseText;
            window.location.assign(resTxt);    // Opens the pdf download prompt
        }
    }
}

At the node handle the request received from above and respond:

var http = require('http');

functiongetPDFUrl() {
    return"http://testing.com/pdf/test.pdf";
}

var handler = http.createServer(function(request, response) {
if (request.url == 'getpdf' && request.method.toLowerCase() == 'get') {
    var pdfUrl = getPDFUrl();       //get pdf url hereif (pdfUrl != null && pdfUrl != undefined && pdfUrl != '') {
        response.writeHead(200, {"Content-Type":"text/html"});
        response.write(pdfUrl);
        response.end();
    } else {
        response.writeHead(404, {"Content-Type":"text/html"});
        response.write("Not Found");
        response.end();
    }

}
});

Solution 2:

I implement similar async file generation features in some apps. The approach I take is a little more involved, but keeps your interface async.

  • Client sends a request for the file to be generated.
  • Server sends response with the URL for the generated file.
  • Client makes a second request to download the generated file.

This is invisible to the user, they will just need to wait for the second transaction to come back.

Post a Comment for "How To Download A Pdf File Through Javascript?"