Я ' m ищет подключаемый сценарий / класс, который анализирует 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
(не разрешено, но возможно).
Я уверен, что нечто подобное существует. Но мне трудно погуглить. Кто-нибудь знает реализацию? (PEAR :: mimeDecode можно взломать, чтобы получить некоторую работу с данными формы, но это слишком много памяти.)
Вкратце вариант использования: необходимо сохранить необработанные имена полей (включая пробелы и специальные символы) для ведение журнала, но не всегда можно избежать загрузки файлов.
В декоративных целях запрос POST выглядит так:
POST / HTTP/1.1
Host: localhost:8000
Content-Length: 17717
Content-Type: multipart/form-data; boundary=----------3wCuBwquE9P7A4OEylndVx
И после \ r \ n \ r \ n
последовательности multipart / payload выглядит следующим образом:
------------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|