2015-08-11 3 views
0

Cela semble être un problème simple, mais j'ai passé un moment à essayer de le résoudre et je n'arrive pas à comprendre ce qui ne va pas. Ceci est ma forme frontend qui fait la demande:Vous rencontrez des problèmes pour télécharger un fichier avec un noeud en utilisant multer

div#PreGA 
    p PreGa.json: 
    form(action="config/set/PreGa", name="pre-ga", method="post", enctype="multipart/form-data") 
     input(type="file" value="Choose File" accept=".json")#choose-file-pre-ga 
     input(type="submit" value="Upload")#upload-pre-ga 

C'est la voie qui devrait recevoir la demande:

var upload = multer({ dest: 'uploads/' }); 

//set the JSON file for the pre-ga reported issues 
router.post('/config/set/PreGa',ensureAuthenticated, upload.single('pre-ga'), function(req, res, next) { 


    console.log(req.body); 
    console.log(req.file); 

}); 

Le problème est que req.file, qui devrait renvoyer le dossier, est indéfini lorsque l'itinéraire est appelé.

Ceci est l'un des cas d'utilisation les plus simples, et je n'arrive pas à comprendre ce qui ne va pas. Il apprécierait grandement de l'aide.

Répondre

1

Il manque un attribut name à votre entrée de fichier.

+0

Oh, je pensais que j'avais besoin du nom pour la saisie du formulaire ... Merci. De plus, il doit s'agir de req.file et non de req.files car j'utilise single() et non array() selon la documentation de multer. Cela fonctionne cependant maintenant. Je ne peux pas croire que je n'ai pas vu ça! –