Lors du téléchargement de fichier, je veux valider la taille du fichier, m'assurer que le fichier téléchargé est une image réelle et enfin valider qu'un titre a été écrit pour l'image. Mais ce code ne fonctionne pas. Que devrais-je faire?Ajout de logique/validation à multer dans node.js (express)
var multer = require('multer'),
upload = multer({
dest: 'uploads/',
onFileUploadStart: function(file, req, res){
if(file.size > 1000000) {
res.send("Maximum picture size is 1 MB");
return false;
}
if(req.body.postname === ''){
res.send("Enter a title name for your post");
return false;
}
if(file.mimetype !== 'image/png' && file.mimetype !== 'image/jpg' && file.mimetype !== 'image/jpeg'){
res.send("Supported image files are jpeg, jpg, and png");
return false;
}
}
});
Et c'est la route qui obtient la demande à travers le formulaire.
router.post('/uploadpost', upload.single('image'), function(req, res){
fs.rename(req.file.path, req.file.destination + req.file.originalname, function(err){
if(err){
throw err;
}
});
var postObj = {
Title : req.body.postname,
Img_path : req.file.destination + req.file.originalname
}
var query = connection.query('INSERT INTO posts SET ?', postObj, function(err, result){
if(err){
throw err;
}
});