Comment puis-je POST un tableau avec un encodage multipart / form-data?

Dans une chaîne de parameters GET ou une requête POST “x-www-form-urlencoded”, il est possible de spécifier un tableau de parameters en les nommant avec des parenthèses (par exemple “name []”).

Existe-t-il une méthode “correcte” (ou au moins une convention largement répandue) pour spécifier un tableau de parameters avec une requête POST “multipart / form-data”?

Serait-ce correct?

Content-Type: multipart/form-data; boundary=--abc --abc Content-Disposition: form-data; name="name[]" first index --abc Content-Disposition: form-data; name="name[]" second index 

Si cela varie selon la plate-forme, je suis intéressé par la convention pour Apache / PHP.

Si vous voulez un tableau associé, vous pouvez passer l’index dans le nom d’un champ de formulaire:

 Content-Type: multipart/form-data; boundary=--abc --abc Content-Disposition: form-data; name="name[first]" first value --abc Content-Disposition: form-data; name="name[second]" second value 

Ensuite, au niveau php, print_r ($ _ POST) vous donnerait

Array ( [name] => Array ( [first] => 'first value', [second] => 'second value' ) )

Si vous êtes après un tableau ordonné normal, même chose que vous avez fait:

 Content-Type: multipart/form-data; boundary=--abc --abc Content-Disposition: form-data; name="name[]" first index --abc Content-Disposition: form-data; name="name[]" second index 

Ensuite, au niveau php, print_r ($ _ POST) vous donnerait

Array ( [name] => Array ( [0] => 'first index', [1] => 'second index' ) )

Les parameters avec [] dans leurs noms traduisant en tableaux côté serveur est une fonctionnalité spécifique à PHP ( http://www.php.net/manual/en/faq.html.php#faq.html.arrays ).

En ce qui concerne le codage en plusieurs parties, vous pouvez en trouver plus dans RFC: http://www.ietf.org/rfc/rfc1867.txt