2008-09-19 2 views
1

Я хочу получить следующую HTTP запрос в PHP:Приемные многокомпонентные запросы POST данных в 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-- 

(Примечание: Я отступом подразделов только, чтобы сделать его более удобным для чтения на этот пост.)

Я не очень свободно говорю на PHP и хотел бы получить помощь/указатели, чтобы выяснить, как получить такой вид многопрофильной формы в PHP-коде. Я однажды написал код, в котором я получил стандартную форму HTML, и затем я мог получить доступ к элементам формы, используя их имя как индексный ключ в массиве $HTTP_GET_VARS, но в этом случае имена элементов формы отсутствуют, а части данных формы не линейный (т. е. подчасти = многоуровневый массив).

Благодарен за любую помощь!

/Robert

ответ

3

$HTTP_GET_VARS, $HTTP_POST_VARS и т.д. является устаревшей нотации, вы должны использовать $_GET, $_POST и т.д.

Теперь содержимое файла должно быть в $_FILES глобального массива, в то время как, если нет названия элементов , Я не уверен, будет ли остальная часть контента отображаться в $_POST. В любом случае, если значение always_populate_raw_post_data установлено в php.ini, данные должны быть в $HTTP_RAW_POST_DATA. Кроме того, весь запрос должен отображаться при чтении php: // ввод.

+0

Спасибо за ваш ответ! Я думаю, что самым достойным решением было бы назвать поля. Вы знаете, какие заголовки HTTP использовать для этой задачи? – sharkin 2008-09-19 10:32:55

-2

Uploadeds файлы будут доступны через глобальную переменную в $ _file, другие параметры будут доступны корыто глобальной переменной $ _GET.

+0

В PHP, когда `multipart/form-data` будет доступен через глобальный` $ _FILE`, к остальной части данных можно получить доступ через глобальный `$ _POST`. – 2017-10-26 07:06:21

1

Следует отметить:

«PHP: // вход позволяет считывать исходные данные POST. Это менее энергоемкая альтернатива $ HTTP_RAW_POST_DATA и не нуждается в каких-либо специальных директивах php.ini. PHP: // ввод не доступен с ENCTYPE =»многочастного/форма-данные»

От PHP Manual ... так что кажется PHP: // ввод не доступен

Не могу пока комментировать, но это intened в дополнение к pilsetnieks ответить

Смежные вопросы