В HTML-формах, связанных с загрузкой файлов, атрибут enctype = "multipart / form-data" должен быть установленным Это много я знаю. Но почему? Что именно это меняет? Чем он отличается от application / x-www-form-urlencoded?
Кодировка по умолчанию appliaction / x-www-form-urlencoded не может отправлять а) большие объемы или двоичные данные или б) текст, содержащий символы не ASCII. Вот почему вам нужно установить его в multipart / form-data для загрузки файлов.
A multipart запрос может состоять из нескольких частей (sic). Таким образом, вы можете отправлять файлы в HTTP-запросе вместе с остальной частью запроса.
Multipart также можно найти в электронных письмах с прикреплениями.
Вот документ W3C на обоих предметах. Это довольно сухо, но это может помочь некоторым.