Какой HTTP-заголовок использовать для установки имен полей формы (multipart/form-data)

StackOverflow https://stackoverflow.com/questions/101662

  •  01-07-2019
  •  | 
  •  

Вопрос

Я передаю необработанные HTTP-запросы на сервер Apache (полученные PHP).Запрос имеет тип multipart/form-data, т.е.тот же тип MIME, который используется при отправке HTML-форм.Однако я не уверен, какой заголовок HTTP использовать для установки имени поля формы (я просто предполагаю, что это заголовок, определяющий это, не знаю, что еще это может быть), который затем можно использовать в PHP для доступа к поле в $_GET или $_FILES.

HTTP-запрос может выглядеть примерно так:

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--
Это было полезно?

Решение

Заголовок Content-Disposition имеет аргумент name, содержащий имя элемента управления.После каждого должен быть один --sub_boundary

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

Я почти забыл:Если поле является элементом управления файлом, имеется также поле имени файла и заголовок Content-Type.

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

а если файл не текстовый, то еще нужно

Content-Transfer-Encoding: binary
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top