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