2011-04-26 54 views
0

通過此程序:如何將文件保存到服務器,我得到的文件哈希值

var http = require('http'), 
formidable = require('formidable') 
, sys = require('sys'); 

http.createServer(function (req, res) { 
    // set up some routes 
    switch(req.url) { 
    case '/': 
     // show the user a simple form 
      console.log("[200] " + req.method + " to " + req.url); 
      res.writeHead(200, "OK", {'Content-Type': 'text/html'}); 
      res.write('<html><head><title>Hello Noder!</title></head><body>'); 
      res.write('<h1>Welcome Noder, who are you?</h1>'); 
      res.write('<form enctype="multipart/form-data" action="/formhandler" method="post">'); 
      res.write('Name: <input type="text" name="username" value="John Doe" /><br />'); 
      res.write('Age: <input type="text" name="userage" value="99" /><br />'); 
      res.write('File :<input type="file" name="upload" multiple="multiple"><br>'); 
      res.write('<input type="submit" />'); 
      res.write('</form></body></html'); 
      res.end(); 
     break; 
    case '/formhandler': 
     if (req.method == 'POST') { 
      console.log("[200] " + req.method + " to " + req.url); 

      req.on('data', function(chunk) { 
       console.log("Received body data:"); 
       // console.log(chunk.toString()); 
      }); 
      var form = new formidable.IncomingForm(); 
      form.parse(req, function(err,fields, files) { 
       console.log('in if condition'+sys.inspect({fields: fields, files: files})); 

       res.writeHead(200, {'content-type': 'text/plain'}); 
       res.write('received upload:\n\n'); 
       res.end(); 
      }); 
      req.on('end', function() { 
       // empty 200 OK response for now 
       res.writeHead(200, "OK", {'Content-Type': 'text/html'}); 
       res.end(); 
      }); 

      } else { 
      console.log("[405] " + req.method + " to " + req.url); 
      res.writeHead(405, "Method not supported", {'Content-Type': 'text/html'}); 
      res.end('<html><head><title>405 - Method not supported</title></head><body><h1>Method not supported.</h1></body></html>'); 
      } 
     break; 
    default: 
     res.writeHead(404, "Not found", {'Content-Type': 'text/html'}); 
     res.end('<html><head><title>404 - Not found</title></head><body><h1>Not found.</h1></body></html>'); 
     console.log("[404] " + req.method + " to " + req.url); 
    }; 
}).listen(8000) 

我得到這個字段&文件哈希:

{ fields: { username: 'John Doe', userage: '99' }, 
    files: 
    { upload: 
     { size: 45739, 
     path: '/tmp/8d3157e0500349287f424307c3104c18', 
     name: 'flowers.jpg', 
     type: 'image/jpeg', 
     lastModifiedDate: Tue, 26 Apr 2011 10:01:49 GMT, 
     _writeStream: [Object], 
     length: [Getter], 
     filename: [Getter], 
     mime: [Getter] } } } 

現在,我怎麼這個文件保存到server.ultimately我想將它保存到s3。

編號: http://debuggable.com/posts/parsing-file-uploads-at-500-mb-s-with-node-js:4c03862e-351c-4faa-bb67-4365cbdd56cb

回答

相關問題