日期:2014-05-16  浏览次数:20279 次

nodejs express 上传文件

?

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',
			        url:'upload',			        
			        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>
?

?