Skip to content

Instantly share code, notes, and snippets.

@erhangundogan
Created January 7, 2013 06:21
Show Gist options
  • Select an option

  • Save erhangundogan/4472906 to your computer and use it in GitHub Desktop.

Select an option

Save erhangundogan/4472906 to your computer and use it in GitHub Desktop.
/*
* File Operations
*/
var fs = require("fs"),
path = require("path"),
util = require("util");
exports.read = function(req, res) {
var fileName = req.params.filename;
if (fileName) {
var resourcePath = path.resolve(__dirname, "..", fileName);
path.exists(resourcePath, function(exists) {
if (exists) {
res.header("Content-Type", "image/jpeg");
return fs.createReadStream(resourcePath).pipe(res);
} else {
return res.end();
}
});
}
};
exports.read2 = function(req, res) {
var fileName = req.params.filename;
if (fileName) {
var resourcePath = path.resolve(__dirname, "..", fileName);
path.exists(resourcePath, function(exists) {
if (exists) {
var fileStats = fs.statSync(resourcePath),
readStream = fs.createReadStream(resourcePath);
res.header("Content-Type", "image/jpeg");
res.header("Content-Length", fileStats.size);
// old style
readStream.on("data", function(data) {
res.write(data);
});
readStream.on("end", function() {
res.end();
});
} else {
return res.end();
}
});
}
};
exports.read3 = function(req, res) {
var fileName = req.params.filename;
if (fileName) {
var resourcePath = path.resolve(__dirname, "..", fileName);
path.exists(resourcePath, function(exists) {
if (exists) {
var fileStats = fs.statSync(resourcePath),
readStream = fs.createReadStream(resourcePath);
res.header("Content-Type", "image/jpeg");
res.header("Content-Length", fileStats.size);
// util.pump
util.pump(readStream, res);
} else {
return res.end();
}
});
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment