I have an AS3 application sending me a jpeg-encoded byte array from an http post. My node application is to take that, and save it on the local filesystem as a jpg.
the as3 jpeg-encoder is from as3 core lib
Code:
var results = new Object();
results.success = false;
results.message = debugWrite("Post Recieved
");
processPost(request, response, function() {
results.message += debugWrite("path: " + FILEPATH + "
");
//save jpg
var buffer = new Buffer(request.post, 'binary');
fs.writeFile(FILEPATH, buffer, "binary", function(error){
if(error != null){
results.message +=debugWrite("Error: "+ error + "
");
}else{
results.message += debugWrite("OK - Saved");
results.success = true;
}
});
response.writeHead(200, "OK", {'Content-Type': 'application/json'});
response.write(JSON.stringify(results));
response.end();
});
}
var processPost = function(request, response, callback) {
var queryData = "";
if(typeof callback !== 'function') return null;
if(request.method == 'POST') {
request.on('data', function(data) {
queryData += data;
if(queryData.length > 1e6) {
debugWrite("Request To Large");
queryData = "";
response.writeHead(413, {'Content-Type': 'text/plain'}).end();
request.connection.destroy();
}
});
request.on('end', function() {
request.post = queryData;
callback();
});
} else {
response.writeHead(405, {'Content-Type': 'text/plain'});
response.end();
}
}
Currently it is saving a file, however, the file isn't view-able. Any tips are really appreciated.
php accomplished the task using "file_put_contents", but i needed to move the functionality to a node server.