Guest User

Untitled

a guest
Nov 19th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. var http = require('http')
  2. , formidable = require('formidable')
  3. , fs = require('fs')
  4. , qs = require('querystring')
  5. , util = require('util')
  6. , uploads = {};
  7.  
  8. http.createServer(function(req, res){
  9. if(req.method == 'GET') {
  10. if(req.url != '/favicon.ico') {
  11.  
  12. res.writeHead(200, {'Content-Type' : resolveType(req)});
  13.  
  14. var url = __dirname;
  15. if(req.url != '/') url += '/public' + req.url;
  16. else url += '/views/index.html';
  17.  
  18. var readStream = fs.createReadStream(url)
  19. .pipe(res)
  20. .on('error', function(o_O){
  21. console.log(o_O);
  22. });
  23. } else {
  24. res.end();
  25. }
  26. }
  27. if(req.method == 'POST') {
  28. var form = new formidable.IncomingForm();
  29. form.parse(req, function(err, fields, files){
  30. if (err) {
  31. console.error(err.message);
  32. return;
  33. }
  34. res.writeHead(200, {'content-type': 'text/plain'});
  35. if(fields.name) {
  36.  
  37. if(!uploads[fields.name]) { // new upload
  38. console.log('new upload ', fields.name);
  39.  
  40. uploads[fields.name] = {
  41. chunk: 0,
  42. size: fields.size,
  43. content: '',
  44. total: fields.size / 272144
  45. };
  46.  
  47. } else {
  48. console.log('got chunk ', uploads[fields.name].chunk);
  49. uploads[fields.name].chunk++;
  50. console.log(fields);
  51. uploads[fields.name].content += fields.data;
  52. }
  53. if(uploads[fields.name].chunk < uploads[fields.name].total) {
  54. console.log('requesting ', uploads[fields.name].chunk, ' out of ', uploads[fields.name].total);
  55. res.end('chunk' + uploads[fields.name].chunk);
  56. }
  57. else {
  58. console.log('complete');
  59.  
  60. res.end('upload complete');
  61. }
  62. }
  63. });
  64. }
  65.  
  66. }).listen(3000, function(){
  67. console.log("Express server listening on port 3000");
  68. });
  69.  
  70. var resolveType = function(req) {
  71. var extension = req.url.split('.');
  72. extension = extension[extension.length-1];
  73. if(extension == 'js') return 'text/javascript';
  74. else if(extension == 'css') return 'text/css';
  75. else return 'text/html';
  76. };
Add Comment
Please, Sign In to add comment