Я ищу включающий скрипт / класс, который разбирает multipart/form-data
и заполняет $_POST
(+ raw) и $_FILES
из него.Обычно PHP делает это сам.Но поскольку автоматическая обработка для меня недостаточна и делает php://input
недоступным [1] Я, вероятно, буду использовать что-то подобное, чтобы предотвратить это:
RewriteRule .* - [E=CONTENT_TYPE:noparsing/for-you-php]
Не работает.Фактическое решение требует mod_headers и RequestHeader set
...
Процедура извлечения может быть не такой сложной.Но я бы предпочел использовать хорошо проверенное решение.И в первую очередь я бы предпочел реализацию, которая использует fgets
для разбиения и имитирует обработку $_FILES
тесно и эффективно.Поиск конца двоичных полезных нагрузок показался бы мне довольно сложным, в частности, когда вам нужно удалить \r\n
, но могут встретиться клиенты, которые отправляют только \n
(не разрешено, но возможно).
I 'Я уверен, что нечто подобное существует.Но мне трудно гуглить.Кто-нибудь знает реализацию?(PEAR :: mimeDecode можно взломать, чтобы получить вид работы с данными формы, но это проблема с памятью.)
Краткий пример использования: необходимо сохранить необработанные имена полей (включая пробелы и специальные символы)), для ведения журнала, но не может избежать загрузки файлов всегда.
В декоративных целях так выглядит запрос POST:
POST / HTTP/1.1
Host: localhost:8000
Content-Length: 17717
Content-Type: multipart/form-data; boundary=----------3wCuBwquE9P7A4OEylndVx
И после последовательности \r\n\r\n
составная часть / полезная нагрузка выглядит следующим образом:
------------3wCuBwquE9P7A4OEylndVx
Content-Disposition: form-data; name="_charset_"
windows-1252
------------3wCuBwquE9P7A4OEylndVx
Content-Disposition: form-data; name=" text field \\ 1 \";inject=1"
text1 te twj sakfkl
------------3wCuBwquE9P7A4OEylndVx
Content-Disposition: form-data; name="file"; filename="dial.png"
Content-Type: image/png
IPNG Z @@@MIHDR@@B`@@B;HF@@@-'.e@@@AsRGB@.N\i@@@FbKGD@?@?@? ='S@@@
@@@GtIMEGYAAU,#}BRU@@@YtEXtComment@Created with GIMPWANW@@ @IDATxZl]w|