2015-12-16 3 views
1

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

Répondre

0

1) Regardez seul fichier dans req.file

2) Assurez-vous que votre forme html a un attribut enctype="multipart/form-data"

+0

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