diff --git a/ChangeLog b/ChangeLog index 1f8aebfe..5a12a908 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012.*.*, v0.3.1 +feature: +* (rest) add zip + + 2012.07.01, v0.3.0 * Changed jquery cdn to one with https suport jquery.com -> google cdn. diff --git a/lib/server/rest.js b/lib/server/rest.js index 4bb9f9ab..5b20c4f9 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -93,7 +93,7 @@ } function onFS(pParams){ - var p, lError, lReadStream, lWriteStream, lSize, lQuery, + var p, lError, lMsg, lName, lZlib, lZipStream, lReadStream, lWriteStream, lSize, lQuery, lRet = main.checkParams(pParams); if (lRet){ @@ -142,11 +142,23 @@ else main.sendError(pParams, pError); }); - else if (lQuery === 'zip') { - lReadStream = fs.createReadStream(p.name); - lWriteStream = fs.createWriteStream(p.name + '.zip'); + else { + lName = p.name; - lError = function(pError) { + if (lQuery === 'zip') { + lZlib = zlib.createGzip(); + lReadStream = fs.createReadStream(lName); + lReadStream = lReadStream.pipe(lZlib); + lName += '.' + lQuery; + lMsg = lQuery; + } else { + lReadStream = p.request; + lMsg = 'save'; + } + + lWriteStream = fs.createWriteStream(lName); + + lError = function(pError) { main.sendError(pParams, pError); }; @@ -154,29 +166,11 @@ lReadStream.on('error', lError); lWriteStream.on('open', function() { - lReadStream.pipe(zlib.createGzip()).pipe(lWriteStream); - //p.request.pipe(process.stdout); + lReadStream.pipe(lWriteStream); + lReadStream.on('end', function() { - var lName = path.basename(p.name) + '.zip'; - main.sendResponse(pParams, 'save: ok("' + lName +'")'); - }); - }); - } else { - lWriteStream = fs.createWriteStream(p.name); - - lError = function(pError) { - main.sendError(pParams, pError); - }; - - lWriteStream.on('error', lError); - p.request.on('error', lError); - - lWriteStream.on('open', function() { - p.request.pipe(lWriteStream); - //p.request.pipe(process.stdout); - p.request.on('end', function() { - var lName = path.basename(p.name); - main.sendResponse(pParams, 'save: ok("' + lName +'")'); + lName = path.basename(lName); + main.sendResponse(pParams, lMsg + ': ok("' + lName +'")'); }); }); }