大家帮我看看这段代码,为什么返回的files.imgFile是undefined - CNode技术社区

大家帮我看看这段代码,为什么返回的files.imgFile是undefined
发布于 12 年前 作者 perny 6585 次浏览 最后一次编辑是 9 年前

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

回到顶部

AltStyle によって変換されたページ (->オリジナル) /