php http запрос необработанных данных содержимого enctype = multipart / form-data [duplicate]

На этот вопрос уже есть ответ:

Получить сырые данные поста 3 ответа

В настоящее время я пишу два класса: HttpRequest и HttpResponse. Я хочу кодировать свои собственные классы HTTP.

У меня возникла проблема с методом POST, использующим форму с enctype = multipart / form-data: я не могу получить содержимое запроса.

После долгих исследований и поисков я обнаружил, что должен использоватьfile_get_contents("php://input"), чтобы получить содержание запроса. Когда я проверяю это, у меня есть пустая строкаvar_dump(file_get_contents("php://input")).

У меня нет доступа к конфигурации сервера / php.

Я тестирую со следующим кодом:

<?php
$input = file_get_contents('php://input');
var_dump($input);
?>
<html>
<body>
<form action="./" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="text" name="namen" id="nameid" /><br/>
    <input type="file" name="file" id="file"><br>
    <input type="file" name="file2" id="file2"><br>
    <input type="submit" name="submit" value="Submit">
</form>
</body>
</html>

И после отправки у меня получился такой результат:string(0) "". Это очевидно, потому что php: // input не работает с формами enctype = ”multipart / form-data”.

Я бы хотел что-то вроде:

-----------------------------19972703421793859182225487886
Content-Disposition: form-data; name="namen"

ds
-----------------------------19972703421793859182225487886
Content-Disposition: form-data; name="file"; filename="toto.xml"
Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8"?>
<Toto></Toto>

-----------------------------19972703421793859182225487886
Content-Disposition: form-data; name="file2"; filename=""
Content-Type: application/octet-stream


-----------------------------19972703421793859182225487886
Content-Disposition: form-data; name="submit"

Submit
-----------------------------19972703421793859182225487886--

Это работает для любого метода запроса? Или я не прав?

Ответы на вопрос(2)

Ваш ответ на вопрос