Skip to content

Instantly share code, notes, and snippets.

@kanreisa
Created August 10, 2012 09:41
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kanreisa/3312981 to your computer and use it in GitHub Desktop.
Save kanreisa/3312981 to your computer and use it in GitHub Desktop.
for gehirn
var http = require("http");
var util = require("util");
var fs = require('fs');
var StreamChunker = require('streamchunker');
var server = http.createServer(function(req, res) {
var name = req.url.replace('/', 'recv.');
var file = fs.createWriteStream(name);
var streamChunker = new StreamChunker({
chunkSize: 1024 * 1024 * 4
});
var chunkCount = 0;
streamChunker.on('chunk', function(chunk) {
var chunkName = [name, chunkCount.toString(10)].join('.');
var chunkFile = fs.createWriteStream(chunkName);
chunk.on('data', function(buffer) {
chunkFile.write(buffer);
});
chunk.on('end', function() {
++chunkCount;
chunkFile.end();
});
});
req.on('data', function(buffer) {
file.write(buffer);
});
req.on('end', function() {
file.end();
console.log('file:', name);
res.writeHead(200, {'Content-type': 'text/plain'});
res.end();
});
req.pipe(streamChunker);
});
server.listen(1421);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment