2008-09-19 7 views
0

Je passe des requêtes HTTP brutes à un serveur apache (reçu par PHP). La requête est de type multipart/form-data, c'est-à-dire le même type MIME utilisé lors de la soumission de formulaires HTML. Cependant, je ne suis pas sûr de l'en-tête HTTP à utiliser pour définir le nom du champ de formulaire (je suppose simplement que c'est un en-tête définissant ceci, je ne sais pas quoi d'autre) qui peut ensuite être utilisé en PHP le champ dans $ _GET ou $ _FILES.Quel en-tête HTTP utiliser pour définir les noms des champs de formulaire (multipart/form-data)

La requête HTTP pourrait ressembler à ceci:

Content-type: multipart/form-data;boundary=main_boundary 

--main_boundary 
Content-type: text/xml 
<?xml version='1.0'?> 
<content> 
Some content goes here 
</content> 

--main_boundary 
Content-type: multipart/mixed;boundary=sub_boundary 

    --sub_boundary 
    Content-type: application/octet-stream 

    File A contents 

    --sub_boundary 
    Content-type: application/octet-stream 

    File B contents 

    --sub_boundary 

--main_boundary-- 

Répondre

3

L'en-tête Content-Disposition a un argument de nom qui porte le nom de contrôle. Il devrait y avoir un après chaque --sub_boundary

--sub_boundary 
Content-Disposition: form-data; name="mycontrol" 

J'ai presque oublié: Si le champ est un contrôle de fichiers, il y a aussi un champ de nom de fichier et un en-tête Content-Type

--sub_boundary 
Content-Disposition: form-data; name="mycontrol"; filename="file1.xml" 
Content-Type: application/xml; 

et si le fichier n'est pas du texte, vous avez également besoin

Content-Transfer-Encoding: binary 
+0

Explication parfaite. À votre santé! – sharkin

Questions connexes