Выгрузка файлов с использованием типа MIME multipart/form-data.
Кроме элементов формы, позволяющих пользователям вводить текстовые данные, в языке HTML версии 4 и более поздних версий предусмотрен тег input типа “file”. При воспроизведений этого тега в броузерах, совместимых с указанными версиями, они вырабатывают элемент пользовательского интерфейса, который выводит для пользователя приглашение указать файл, выгружаемый на сервер. После отправки на сервер данных этой формы броузер открывает файл и отправляет его содержимое, что позволяет выгружать в серверный сценарий Web целые файлы.
Однако этот метод не совсем совместим с кодировкой строк запроса application/x-www-form-urlencoded, поскольку большинство выгружаемых файлов имеет большой размер и сложную структуру. В серверных сценариях, поддерживающих этот метод, применяется схема кодировки запроса другого типа, называемая multipart/form-data. Формы, которые поддерживают эту кодировку, заключены в теги
с атрибутом ENCTYPE, обозначающим эту схему.
С кодировкой такого типа всегда используется метод POST. В случае multipart/form-data применяется схема кодировки, которая очень похожа на схему для многокомпонентных вложений MIME. Каждый элемент формы обозначается как отдельная подчасть, которая имеет поле заголовка Content-Disposition: со значением “form-data”; имя, содержащее имя поля; и данные тела сообщения, содержащие значение этого поля.