nodejs formidable 文件上传问题 新人上路
发布于 10 年前 作者 read125 6636 次浏览 最后一次编辑是 8 年前 来自 问答

app.post(’/upload’,function(req,res){ var form = new formidable.IncomingForm(); form.encoding = ‘utf-8’;
form.uploadDir = __dirname + ‘/public/uploads/’;
form.keepExtensions = true;
form.maxFieldsSize = 210241024; form.parse( req, function( err , fields , files ){ if(err){ //console.log(err);
res.redirect(‘admin/stageHome’); ///??? } var filesName = req.files.fulAvatar.name, //
filesType = req.files.fulAvatar.type; if(filesName == “” ){ // console.log(‘There is no file !’);
return; } if( !(!/.(gif|jpg|jpeg|bmp|png)$/.exec(filesName)) ){ // 检测文件格式是否为gif,jpg,jpeg,bmp,png
var suffixName = /\w{1,4}$/.exec(filesType)[0]; //获取后缀名
var avatarName = code.generateRandomCode(12) + code.gotTime() + ‘.’ + suffixName;
var newPath = form.uploadDir + avatarName;
var resPath = req.files.fulAvatar.path; fs.renameSync(resPath, newPath); //重命名 }
else{
console.log(‘不支持的文件格式 !’);
return;
} } console.log(‘success!’); }); res.render(‘stageHome’,{title:’’}); // 这一句 ???问题地方 }); "加问号问题地方"这一句加上去之后,图片就无法上传成功, 不加这一句网页一直处于响应状态或网页报错,但图片却仍可以成功上传 请高人指点如何解决! 先谢过了!!!

6 回复
    form.parse( req, function( err , fields , files ){
         .........
		 ........
		 if( !(!/.(gif|jpg|jpeg|bmp|png)$/.exec(filesName)) ){  // 检测文件格式是否为gif,jpg,jpeg,bmp,png
         
               fs.renameSync(resPath, newPath);  //重命名
			   res.render('stageHome’,{title:’’});
         }
         ..........
    });

callback

form.parse( req, function( err , fields , files ){ … … res.render('stageHome’,{title:’’}); /// 放在这里 }); res.render('stageHome’,{title:’’}); ///和放在这里 网页都是一直处于响应状态或网页报错,但图片却仍可以成功上传

为什么不用multer呢?

倒是没用过这个,不过可以试下,谢谢你的建议…

用multer,可以实现上传了,先这个multer。formidable再慢慢琢磨琢磨…

formidable 上传的问题还是无法解决,请高人指点下 现在只能弃用formidable,改用multer

回到顶部