J'ai essayé d'utiliser multer comme indiqué dans un didacticiel. Puis s'est rendu compte que cela ne fonctionne plus de la même manière que par le passé. J'ai donc vérifié la page github de multer et suivi la documentation. Cependant, si mon image est téléchargée, le nom de fichier n'est pas stocké dans la base de données.Le nom de fichier de l'image n'est pas inséré dans la base de données à l'aide de Multer
Voici mon code:
var express = require('express');
var router = express.Router();
var multer = require('multer');
var upload = multer({dest: './public/images/uploads/'});
router.post('/add', upload.single('mainimage'), function(req, res, next) {
//get form values
var title = req.body.title;
var category = req.body.category;
var body = req.body.body;
var author = req.body.author;
var date = new Date();
var mainImageName;
if(req.files && req.files.mainimage){
var mainImageNameOriginalName = req.files.mainimage.originalname;
mainImageName = req.files.mainimage.name;
var mainImageMime = req.files.mainimage.mimetype;
var mainImagePath = req.files.mainimage.path;
var mainImageExtension = req.files.mainimage.extension;
var mainImageSize = req.files.mainimage.size;
}else{
mainImageName = 'noimage.png';
}
// db insertion and yadi yadi yada
});
module.exports = router;
Le nom du fichier d'image qui se stockée est noimage.png
si l'image s'uploadé. Je définissais la mainImageName
sur le dessus pour éviter de levage
Si le formulaire n'a pas cet attribut, alors l'image n'aurait pas été téléchargée je pense. J'ai vérifié faire 'req.file'. Même problème – marukobotto