Je me demande si quelqu'un peut partager avec moi un exemple de multipart / form-data qui contient:
- Quelques paramètres de formulaire
- Plusieurs fichiers
html
http
multipart
multipartform-data
user496949
la source
la source
17.13.4 Form content types
vous trouverez ce que vous cherchez.Réponses:
EDIT : Je maintiens une réponse similaire, mais plus approfondie sur: https://stackoverflow.com/a/28380690/895245
Pour voir exactement ce qui se passe, utilisez
nc -l
ou un serveur ECHO et un agent utilisateur comme un navigateur ou cURL.Enregistrez le formulaire dans un
.html
fichier:Créez des fichiers à télécharger:
Courir:
Ouvrez le HTML sur votre navigateur, sélectionnez les fichiers et cliquez sur soumettre et vérifiez le terminal.
nc
imprime la demande reçue. Firefox a envoyé:Aternativelly, cURL doit envoyer la même requête POST que votre formulaire de navigateur:
Vous pouvez faire plusieurs tests avec:
la source
boundary=---------------------------9051914041544843365972754266
est deux traits d' union plus court alors les limites réelles dans les données. C'est vraiment, vraiment difficile à voir avec tous les traits d'union attachés ensemble.curl --trace-ascii <logfilename> .....
est également pratique pour visualiser les données envoyées et reçues.curl -trace <logfilename> ....
affichera également binaire. Pratique pour observer <LF> vs <CR> <LF>.Merci beaucoup à @Ciro Santilli answer! J'ai trouvé que son choix pour la limite est assez "malheureux" parce que tous ces traits d'union: en fait, comme @Fake Name l'a commenté, lorsque vous utilisez votre demande de limite à l'intérieur, elle est accompagnée de deux autres tirets au recto:
Exemple:
J'ai trouvé sur cette page w3.org qu'il est possible d'incorporer un en-tête multipart / mixed dans un multipart / form-data, en choisissant simplement une autre chaîne de limite à l'intérieur de multipart / mixed et en l'utilisant pour incapsuler des données. À la fin, vous devez «fermer» toutes les limites utilisées dans l'ordre FILO pour fermer la requête POST (comme:
Jetez un œil au lien ci-dessus.
la source
Content-Disposition
avec;
?