web-dev-qa-db-fra.com

Nodejs côté serveur formdata

Je développe une application Web utilisant Nodejs Server-Server. J'essaie d'envoyer des fichiers PDF du client au serveur.

Client:

var files = new FormData();
var count = 0;
$('#tableSlideId tr').each(function() {

    var inputForm = $(this).find("th:first").children();
    file = inputForm[0].files[0];
    files.append((count++).toString(),file);

});

$.ajax({
    type: "POST",
    url: "/sendFiles",
    data: files,
    contentType: false,
    processData: false,

}).done(function(err){

    var text ="";
    if(err) {

        text = "Upload FAILED! Retry ...";

    } else {

        text = "Upload SUCCES!";

    }

    alert(text);



});

Je pense que le côté client est correct, en infacte si j'utilise cette boucle:

for(var p of files)
  console.log(p);

J'ai correctement visualiser tous les éléments que je veux envoyer au serveur.

Serveur:

app.post('/sendFiles', function(req,res) {

    console.log("--->",req.body);
    res.end();

});

Maintenant, dans le serveur, je n'ai aucune idée de la façon de visualiser les données que j'envoie, d'infactuer Req.body est vide.

Je ne sais pas si c'est la bonne façon, mais mon objectif est de charger certains fichiers PDF former le client, envoyer au serveur et après les stocker dans un MySQL DMBS. Merci.

3
Giorgio Di Rocco

Je pense que vous avez besoin de middleware pour accepter le formidata multipart du côté serveur. Multer est une bonne option.

Vous pouvez utiliser

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

puis mettre à jour votre côté serveur pour gérer le téléchargement:

app.post('/sendFiles', upload.array('files', maxCount), function(req,res)
0
a94