web-dev-qa-db-fra.com

Télécharger un fichier sur l'application Express.js

Je développe une API RESTful pour une application client mobile avec la combinaison de Node.js, Express.js et Mongodb. Maintenant, j'essaie de gérer le téléchargement de l'image de profil utilisateur et j'ai trouvé un module appelé "multer" (qui est celui recommandé par l'équipe express.js elle-même) qui permet à express.app de gérer plusieurs parties/formulaire- demandes de données. Maintenant, je dois tester l'application et, en outre, la fonction de téléchargement, mais je ne suis pas en mesure de simuler une demande de formulaire http (via postman chrome). Multer renvoie cette erreur:

[Erreur: Multipart: limite non trouvée]

En fait, en comparant une demande de formulaire http (qui fonctionne) avec une demande http personnalisée, la seconde n'a pas la propriété d'en-tête Boundary.

Qu'est-ce que la propriété Boundary?

23
Luca Marzi

La limite sous une forme en plusieurs parties indique une chaîne de délimitation séparant le texte et les données binaires. Vous pouvez le faire dans postman, mais il semble que vous n'envoyez pas à la fois le fichier et le texte, donc postman peut être par défaut sous une forme régulière. voyez-vous quelque chose comme:

postman-form-multipart

Si vous cliquez sur Aperçu dans Postman, vous pouvez voir la limite dans l'en-tête Content-type et dans le corps.

13
Plato

Si vous utilisez Postman, vous pouvez essayer de supprimer l'en-tête: "Content-type": "multipart/form-data". Je l'ai retiré et maintenant ça marche.

57
Xelz

solutions:

1) ne spécifiez pas le content-type Chez le client

2) utilisez la dénomination convention(imageUpload) dans upload.single('imageUpload') identique au nom du champ

7
punith ck punith