Advertisement
desdemona

srv1

Dec 19th, 2014
632
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.72 KB | None | 0 0
  1. var http = require('http');
  2. var fs = require('fs');
  3. var path = require('path');
  4. var url = require('url');
  5.  
  6. var port = process.argv[2] || 8888;
  7. var dirs = {};
  8. dirs = [".//png//", ".//jpg//", ".//html//", ".//js//", ".//gif//"];
  9. exts = [".png", ".jpg", ".html", ".js", ".gif"];
  10.  
  11. var myServer = http.createServer(function (req, res) {
  12.     console.log('request starting:' + req.method + " " + req.url);
  13.     var dirName = path.dirname(req.url).toLowerCase();
  14.     var baseName = path.basename(req.url).toLowerCase();
  15.     var extName = path.extname(req.url).toLowerCase();
  16.  
  17.     // handling plain files .html/.js
  18.     if (req.method.toLowerCase() === 'get' && (extName === '.html' || extName === '.js')) {
  19.         fs.readFile(FileDirectory + req.url, function (error, content) {
  20.             if (error) {
  21.                 res.writeHead(500);
  22.                 res.end();
  23.             }
  24.             else {
  25.                 res.writeHead(200, { 'Content-Type': 'text/html' });
  26.                 res.end(content, 'utf-8');
  27.             }
  28.         });
  29.         return;
  30.     }
  31.     else if (req.method.toLowerCase() === 'get' && (extName === '.jpg' || extName === '.gif' || extName === '.png')) {
  32.         var filepath = "";
  33.         if (exts[extName] !== null) {
  34.             filepath = path.join(dirs[exts.indexOf(extName)], baseName);
  35.             console.log(exts.indexOf(extName));
  36.             console.log(dirs[exts.indexOf(extName)]);
  37.             if (!fs.existsSync(filepath) || fs.statSync(filepath).isDirectory()) {
  38.                 console.log('file for request ' + filepath + " not found");
  39.                 res.writeHead(404);
  40.                 res.end();
  41.                 return;
  42.             }
  43.  
  44.  
  45.             console.log("sending " + filepath);
  46.             fs.readFile(filepath, function (error, content) {
  47.                 if (error) {
  48.                     res.writeHead(500);
  49.                     res.end();
  50.                     console.log("error");
  51.                     return;
  52.                 }
  53.                 else {
  54.                     //res.writeHead(200, { 'Content-Type': 'application/octet-stream' });
  55.                     //res.write(content);
  56.                     res.setHeader("Content-Disposition", "attachment; filename=" + baseName);
  57.                     res.end(content, 'utf-8');
  58.                     //res.end();
  59.                     console.log("success");
  60.                     return;
  61.                 }
  62.             });
  63.         }
  64.         else {
  65.             res.writeHead(404);
  66.             res.end();
  67.         }
  68.     }
  69.     else {
  70.         res.writeHead(404);
  71.         res.end();
  72.     }
  73. });
  74. myServer.listen(parseInt(port, 10));
  75. console.log("Static file server running at\n  => http://localhost:" + port + "/\nCTRL + C to shutdown")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement