大家帮我看看这段代码,为什么返回的files.imgFile是undefined
app.post(’/uploadImg’,function(req, res, next){ console.log(req.body.localUrl);//成功 console.log(req.files.imgFile.path);//成功
var form = new formidable.IncomingForm();
form.keepExtensions = true;//保留后缀 .jpg/.png
var folderName = new Date().Format('yyyy-MM-dd');
var dirPath = __dirname+"/../public/uploadimg/"+folderName+"/";
console.log(dirPath);
if(!fs.existsSync(dirPath)){//如果没有这个文件夹就创建文件夹
fs.mkdirSync(dirPath);
}
form.uploadDir = dirPath;//设置文件上传的目录
form.parse(req, function(err, fields, files){
console.log(files.imgFile);//问题出现在这里,怎么返回的是undefined?
var filePath = files.imgFile.path.replace(/\\/g, '/');
var resPath = '/uploadimg/'+folderName+'/'+filePath.substring(filePath.lastIndexOf('/')+1);
res.send({"error":0,"url":resPath});
})
})
4 回复
files难道不是个数组?你不应该通过files[0]这种方式看吗?
不是,是一个对象!应该是图片没传上去的原因,怎样将文件传到指定文件夹啊?我倒是在临时文件夹看到了图片的身影!
@perny 你debug看下路径什么的是否正确,还有parse的api
files
对象就是你上传的文件集合,files里面到底是什么,console出来看看, 不一定叫imgFile, 叫什么取决于你post的时候设置的input框的name