推荐使用第三方的模块:formidable
一丶使用方法
1丶推荐一个第三方模块管理的平台 https://www.npmjs.com/,里边有各种我们需要的模块,formidable模块就可一在里边找到;
2丶进入该平台搜formidable即可
3丶具体实现功能看代码
var formidable = require('formidable'), //引入第三的文件上传模块 http = require('http'), util = require('util'), path = require('path'), //path和fs模块引入是为了给上传的文件改名,默认上传的文件是没有后缀名的 fs = require('fs') var server = http.createServer(function(req, res) { if (req.url == '/upload' && req.method.toLowerCase() == 'post') { //文件上传的提交方式必须为post, var form = new formidable.IncomingForm(); form.uploadDir = "./dir"; //设置文件上传的接受文件夹 form.parse(req, function(err, fields, files) { var oldpath = __dirname+'/'+files.upload.path var newpath = __dirname +'/dir/'+ parseInt(Math.random()*1000+1000)+path.extname(files.upload.name); fs.rename(oldpath, newpath, function(err){ //上传完毕执行文件改名,该方法为fs模块rename if(err){throw Error("改名失败")} res.writeHead(200, {'content-type': 'text/plain'}); res.end('success'); }) }); return; } res.writeHead(200, {'content-type': 'text/html'}); res.end( '<form action="/upload" enctype="multipart/form-data" method="post">'+ '<input type="text" name="title"><br>'+ '<input type="file" name="upload" multiple="multiple"><br>'+ '<input type="submit" value="Upload">'+ '</form>' ); }) server.listen(3000,'192.168.5.69'); //监听到自己的电脑的ip