2017-07-13 2 views
1

En NodeJS Je suis en train de données POST JSON au serveur avec un fichier en utilisant le code suivant:Comment POST JSON + fichier pdf avec Unirest dans NodeJS

unirest.post(url) 
.headers(headers) 
.send(data) 
.attach('file', file) 
.end(function (response) { 
    var statusCode = response.status; 
    if (statusCode != 200) { 
     console.log("Result: ", response.error); 
    } 
}); 

Cependant, sur le serveur, je suis seulement recevoir le fichier, et non l'objet JSON de .send(data). Je vois qu'il ya une fonction .multipart() je peux utiliser, mais je ne suis pas sûr de savoir comment utiliser au mieux ce?

Répondre

2

Lorsque vous envoyez des données JSON sur HTTP, le type de contenu est application/json. Lorsque vous envoyez des fichiers sur http, le type de contenu est multipart/form-data. Vous pouvez envoyer des champs de formulaire lors de l'envoi d'une requête en plusieurs parties, mais vous ne pouvez pas envoyer de données JSON dans une demande en plusieurs parties. Vous avez 2 options pour envoyer cette demande

  1. Lors de l'utilisation multipart/form-data, stringify vous des données JSON et l'envoyer comme un champ de formulaire et l'analyser à l'autre extrémité
  2. Lors de l'utilisation application/json, base64 vous le fichier et l'envoyer comme propriété dans vos données JSON
+0

Merci pour l'explication – ralfe