Skip to content

Instantly share code, notes, and snippets.

@tatethurston
Created October 28, 2015 00:01
Show Gist options
  • Save tatethurston/6240f5c6aea6ae6862bb to your computer and use it in GitHub Desktop.
Save tatethurston/6240f5c6aea6ae6862bb to your computer and use it in GitHub Desktop.
node file upload progress streaming
var http = require('http');
var fs = require('fs');
http.createServer(function(request, response){
var newFile = fs.createWriteStream('file-upload.jpg');
var fileSize = request.headers['content-length'];
var uploadedBytes = 0;
request.on('readable', function(){
var chunk = request.read();
while(chunk !== null){
uploadedBytes += chunk.length;
chunk = request.read()
var progress = (uploadedBytes / fileSize) * 100;
response.write('Progress: ' + progress.toFixed(2) + '%\n');
}
});
request.pipe(newFile);
request.on('end', function(){
response.end('File uploaded!');
});
}).listen(1337);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment