2017-07-17 3 views
-1

Je suis nouveau dans NodeJS et je travaille sur un projet en utilisant express, ejs et Multer (gérer multipart/form-data) afin de télécharger une image (single >> image de profil). J'ai essayé d'afficher le fichier téléchargé (image) dans une vue sans succès. J'ai toutes les informations concernant le fichier téléchargé (req.file) mais je ne peux rien faire avec.Afficher l'image téléchargée avec multer

//route.js 
    app.post('/upload_picture', isLoggedIn, upload.single('file'), function(req, res, next){ 
     res.render('image', { 
       path: req.file.path 
     }); 
     }); 



//image.ejs 
<section id="upload"> 
    <img class="uploaded-image" src="<%= path %>" alt="Image name: <%= path %>"/> 
    </section> 

Quelqu'un pourrait m'aider s'il vous plaît.

Meilleures salutations, Dona

Répondre

1

Voici donc la solution, il a travaillé pour moi!

var storage  = multer.diskStorage({ 
    destination: function(req, file, cb){ 
    cb(null, path.join(__dirname, PICTURE_FOLDER)); 
    }, 
    filename: function(req, file, cb){ 
    var filename = Date.now(); 
    switch (file.mimetype) { 
     case 'image/png': 
     filename = filename + ".png"; 
     break; 
     case 'image/jpeg': 
     filename = filename + ".jpeg"; 
     break; 
     default: 
     break; 
    } 
    cb(null, filename); 
    } 
}); 
var upload  = multer({ storage: storage}); 

app.post('/upload_picture', isLoggedIn, upload.single('file'), function(req, res, next){ 
    res.render('image', { 
     path: req.file.path 
    }); 
}); 

Meilleures salutations, Dona