nodejs expressアップロードファイル

2130 ワード

1,以下はファイルをアップロードするnodejsのバックグラウンドです.
 var express = require('express');
var fs = require('fs');
var path = require('path');
//createServer
var app = module.exports = express.createServer();
app.configure(function(){ 
 app.use(express.bodyParser({uploadDir:'c:\\aa'}));
 app.use(express.methodOverride());
 app.use(app.router);
 app.use(express.static(__dirname + '/public')); 
});
app.post('/:service?', function(req, res){    
    if (req.files && req.files.codecsv != 'undifined') {
        var temp_path = req.files.codecsv.path;
        if (temp_path) {
            fs.readFile(temp_path, 'utf-8', function(err, content) {
                //     
                console.log('content',content);
                //       
                fs.unlink(temp_path);
            });
        }
    }
 
});
app.listen(4000, function(){
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
});
2,フロントコードはjqueryのajaxを使います.
 <script type="text/javascript">
  $(function(){
      $('#file_upload').click(function(){
      
       var data = new FormData();
       var files = $('#file')[0].files;
       
       if (files) {
        data.append('codecsv',files[0]);
       }      
       
       $.ajax({
           cache: false,
     type: 'post',
     dataType: 'json',
           ,           
           data : data,
           contentType: false,
    processData: false,
           success : function () {
               
           }
       });
   });
   
  })
   
</script>
  <table style='width: 100%;height: 100%'>
   <tr>
    <td style='width:800px;text-align: center;'>
     <input id='file' type="file">
     <input id='file_upload' type="button" value="upload">
    </td>
   </tr>
  </table>