我在jade 模板写了一个表单里面包括了file
我想实现在上传一个文件,然后把一些文件的信息同时存入mongodb里面,我分开是可以实现的,可是不知道为什么 直接把代码写在了post下,发生一件很奇怪的事情,运行和上传没有报错可是就是找不到文件。求解…
app.post('/test/newfile’,function(req,res){ var form = new formidable.IncomingForm(); //创建上传表单 form.encoding = 'utf-8’; //设置编辑 form.uploadDir = testfileUrl; //设置上传目录 form.keepExtensions = true; //保留后缀 form.maxFieldsSize = 2 * 1024 * 1024; //文件大小 console.log(form); form.parse(req, function(err, fields, files) { if (err) { res.locals.error = err; console.log(err); res.render('pages/fonts/index’, { title: ‘test’ }); return;
}
var extName = '’; //后缀名 switch (files.fulAvatar.type) { case 'image/pjpeg’: extName = 'jpg’; break; case 'image/jpeg’: extName = 'jpg’; break;
case 'image/png’: extName = 'png’; break; case 'image/x-png’: extName = 'png’; break;
} console.log('extName:’+extName) if(extName.length == 0){ res.locals.error = '只支持png和jpg格式图片’; res.render('pages/index’, { title: ‘test’ }); return;
} console(‘1’) var avatarName = Math.random() + ‘.’ + extName;//文件名 var fileUrl = form.uploadDir + avatarName;//文件的地址 var testfileObj = req.body.testfile;var _testfileup; _testfileup = new testfileup({//创建的实例的名称 filename: avatarName, fulAvatar: fileUrl,//文件的地址 }); _testfileup.save(function(err,testfileups){ if(err){ console.log(err); } // res.redirect('/mechanism/'+testfileups.id); }); console.log('save ok'); console.log('testfileup:'+_testfileup); fs.renameSync(files.fulAvatar.path,fileUrl); //重命名 return
});
res.locals.success = '上传成功'; res.render('pages/ok', { title: 'TITLE' });
})