Express 删除上载的文件,并使用
嘿,我正在使用强大的模块在我的应用程序中创建图像上传功能。上传图像时效果很好,但我想对其执行一些验证,如检查图像类型和图像大小,但我没有找到验证图像大小的方法 我不希望用户上传的图像超过1M字节Express 删除上载的文件,并使用,express,formidable,Express,Formidable,嘿,我正在使用强大的模块在我的应用程序中创建图像上传功能。上传图像时效果很好,但我想对其执行一些验证,如检查图像类型和图像大小,但我没有找到验证图像大小的方法 我不希望用户上传的图像超过1M字节 router.post('/upload',function(req,res,next){ var types = ['image/jpeg','image/png']; var error = true; var form = new formidable.IncomingForm(); fo
router.post('/upload',function(req,res,next){
var types = ['image/jpeg','image/png'];
var error = true;
var form = new formidable.IncomingForm();
form.uploadDir = path.join(__dirname,'../public/images/profile');
form.on('fileBegin',function(name,file){
var type = types.find(type => type == file.type);
if(!type){
throw "Image should be in jpeg or png format.";
}
});
form.on('file',function(name,file){
fs.rename(file.path,path.join(form.uploadDir,file.name),function(err){
if(err) console.log(err);
});
});
form.on('error',function(err){
if(err) console.log("Error");
});
form.on('end',function(){
if(!error) console.log("updated");
});
form.parse(req);
});
看见它不直接受
强大的
(与,比如说,)支持,但是如果您在文件开始
处理程序中检查file.size
,您可能能够阻止大型上传。我将file.size记录在文件开始中,并且得到0作为回报。嗯,好吧,那不是很有用。您可能可以使用该事件来记录实际上载的数量,并在达到1MB限制时阻止上载。谢谢,我认为multer比其他功能更强大。