Загрузка POST-файлов - ошибка multipart / form-data + UTF в PHP? - PullRequest
3 голосов
/ 27 января 2012

Когда я пытаюсь загрузить файлы, используя сообщение HTTP с заголовком Content-Type: multipart/form-data; boundary=-----NPRequestBoundary-----, все работает как положено, но при попытке использовать Content-Type: multipart/form-data; boundary=-----NPRequestBoundary-----; charset=UTF-8 вызывает совершенно пустой массив $ _FILES.

Это проблема с PHP или веб-сервером?Как я знаю, эта форма Content-Type действительна.

Ответы [ 3 ]

1 голос
/ 17 октября 2013

Ошибка была исправлена ​​в SVN rev.# 316373 (выпуск 5.3.9 охватывает это).

1 голос
/ 27 января 2012

Поскольку Content-Type равен multipart/form-data, это означает, что он составлен из частей, и каждая часть может иметь свой собственный Content-Type. Параметр charset используется только с text/plain типом содержимого. Так что это бессмысленно с multipart/form-data типом контента.

0 голосов
/ 27 января 2012

Я нашел грязное решение этой проблемы. Для меня это, конечно, временный bcs, он не работает при litespeed (я использовал обратный прокси в apache, чтобы избежать этой проблемы).
<Location "/upload.php">
RequestHeader set Content-Type "multipart/form-data; boundary=-----NPRequestBoundary-----"
</Location>

Это заставит веб-сервер заменить заголовок типа контента. На данный момент я уверен - это ошибка PHP (кто-то предполагал, что кодировка произойдет до boundary=)

...