Node.js的Formidable模块的使用,方便快捷
服务用的是express ,如果不是很老的express框架,都有自带formidable 如果没有就下载一个 npm i formidable
1 var formidable = require('formidable'); 2 var fs = require("fs"); 3 app.use('/test',function(req,res){ 4 console.log("有文件了"); 5 var form = new formidable.IncomingForm(); 6 form.encoding = 'utf-8'; 7 form.uploadDir = path.join(__dirname + "/../page/upload"); 8 form.keepExtensions = true;//保留后缀 9 form.maxFieldsSize = 2 * 1024 * 1024; 10 //处理图片 11 form.parse(req, function (err, fields, files){//错误,json,文件 12 var filename = files.img.name; 13 var nameArray = filename.split('.'); 14 var type = nameArray[nameArray.length - 1]; 15 var date = new Date(); 16 var time = '_' + date.getFullYear() + "_" + date.getMonth() + "_" + date.getDay() + "_" + date.getHours() + "_" + date.getMinutes(); 17 var avatarName = time + '.' + type; 18 var newPath = form.uploadDir + "/" + avatarName; 19 fs.renameSync(files.img.path, newPath); //重命名 20 res.send("接收成功") 21 }); 22 }
当调用form.parse的时候说明已经保存好图片了,callback函数 有三个 参数 第一个是保存出错, 第二个是文本,JSON ,第三个是文件
var filename = files.[你上传文件的名字].name