服务用的是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
Node.js的Formidable模块的使用,方便快捷
原文地址:https://www.cnblogs.com/guiltyWay/p/9895550.html