Вопрос по php, apache, post, http, multipartform-data – Как я могу POST массив с кодировкой multipart / form-data?

13

В строке параметра GET или в «x-www-form-urlencoded» Запрос POST, можно указать массив параметров, назвав их в скобках (например, «name []»).

Есть ли "правильный" ответ? (или, по крайней мере, широко распространенное соглашение) способ указания массива параметров с помощью «multipart / form-data» POST запрос?

Будет ли следующее правильно?

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

Если это зависит от платформы, меня интересует соглашение по Apache / PHP.

Ваш Ответ

1   ответ
16

вы можете передать индекс в имени поля формы:

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

Тогда на уровне php print_r ($ _ POST) даст вам

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

Если вам нужен только обычный упорядоченный массив, то так же, как вы это сделали:

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

Тогда на уровне php print_r ($ _ POST) даст вам

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

Параметры с [] в именах, переводимые в массивы на стороне сервера, - это особенность, характерная для PHP (http://www.php.net/manual/en/faq.html.php#faq.html.arrays).

Что касается многочастного кодирования, вы можете найти больше в RFC:http://www.ietf.org/rfc/rfc1867.txt

Error: User Rate Limit ExceededguessingError: User Rate Limit Exceeded DougW
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded DougW

Похожие вопросы