Sunday, 15 June 2014

How to send javascript buffer as a file from node.js server -



How to send javascript buffer as a file from node.js server -

i have html webpage javascript script uses xmlhttprequest file server. want browser open standard "download file" window, user can save file. code simple:

var xhr; xhr=new xmlhttprequest(); xhr.onreadystatechange=function() { if (xhr.readystate==4 && xhr.status==200) { alert("file received"); } } xhr.open("get”,”http://localhost:17001/filedl?param=1",true); xhr.send();

on server, have running node.js app express module. app generating buffer info , sending client file. code here:

var express = require('express'); var app = express(); app.get('/filedl', function(req, res){ var pngbuffer = new buffer("generated png goes here"); res.setheader('content-description','file transfer'); res.setheader('content-disposition', 'attachment; filename=print.png'); res.setheader('content-type', 'application/octet-stream'); res.end(pngbuffer); }); app.listen(17001);

however, can't "save as" dialog open in browser. i'm getting response server buffer in text form.

i've tried setting different response http headers, without luck.

var blobobject = new blob([xhr.respomse], {type: 'image/png'}); navigator.mssaveblob(blobobject, "print.png"); blobobject.msclose();

i'm using navigator.mssaveblob function on client side save file in net explorer, hope works you

javascript node.js xmlhttprequest download buffer

No comments:

Post a Comment