Question

Je souhaite recevoir la demande HTTP suivante dans PHP:

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--

(Remarque: j'ai mis en retrait les sous-parties uniquement pour le rendre plus lisible pour ce poste.)

Je ne maîtrise pas très bien PHP et souhaiterais obtenir de l'aide / des indicateurs pour savoir comment recevoir ce type de demande de formulaire en plusieurs parties dans du code PHP. Une fois, j'ai écrit du code dans lequel j'ai reçu un formulaire HTML standard, puis je pouvais accéder aux éléments du formulaire en utilisant leur nom comme clé d'index dans le tableau $ HTTP_GET_VARS , mais dans ce cas, il n'y a pas d'élément de formulaire. les noms et les parties de données de formulaire ne sont pas linéaires (c.-à-d. sous-parties = tableau à plusieurs niveaux).

Reconnaissant pour toute aide!

/ Robert

Était-ce utile?

La solution

$ HTTP_GET_VARS , $ HTTP_POST_VARS , etc. est une notation obsolète, vous devriez utiliser $ _GET , $ _ POST , etc.

Le contenu du fichier doit maintenant figurer dans le tableau global $ _FICHES , tandis que, s'il n'y a pas de nom d'élément, je ne suis pas sûr que le reste du contenu s'affiche dans < code> $ _ POST . Quoi qu'il en soit, si le paramètre always_populate_raw_post_data est vrai dans php.ini , les données doivent être dans $ HTTP_RAW_POST_DATA . De plus, toute la requête devrait apparaître lors de la lecture de php: // input .

Autres conseils

Vous devriez noter:

& # 8220; php: // L’entrée vous permet de lire les données brutes POST. C'est une alternative moins coûteuse en mémoire que $ HTTP_RAW_POST_DATA et ne nécessite aucune directive php.ini spéciale. php: // L'entrée n'est pas disponible avec enctype = & # 8221; multipart / form-data & # 8221;

.

D'après le manuel php ... il semble donc que php: // l'entrée n'est pas disponible

Je ne peux pas encore commenter, mais cela est censé compléter la réponse de pilsetnieks

Les fichiers téléchargés seront accessibles via la variable globale $ _FILE, les autres paramètres seront accessibles via la variable globale $ _GET.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top