Прочитайте параметры запроса POST правильно в PHP для запроса более 1450 B?

Я получаю запрос POST на моем скрипте api.php. Содержимое красного цвета, используя этот код:

$fp = fopen('php://stdin', 'r'); $all = ""; while($line = fgets($fp, 4096)) { $all .= $line; } echo $all; 

выглядит так:

 ------------V2ymHFg03ehbqgZCaKO6jy Content-Disposition: form-data; name="intro" O ------------V2ymHFg03ehbqgZCaKO6jy Content-Disposition: form-data; name="title" T ------------V2ymHFg03ehbqgZCaKO6jy Content-Disposition: form-data; name="apiKey" 98d32fdsa ------------V2ymHFg03ehbqgZCaKO6jy Content-Disposition: form-data; name="method" /media/add ------------V2ymHFg03ehbqgZCaKO6jy Content-Disposition: form-data; name="upload_field"; filename="original_filename.png" Content-Type: image/png ------------V2ymHFg03ehbqgZCaKO6jy-- 

Как вы можете видеть, я получаю 4 параметра под названием intro, title, apiKey и метод и один файл с именем original_filename.png размером 1460 байт.

К сожалению, мой массив $ _POST пуст. Что странно, когда orginal_filename.png меньше 1450 байтов $ _POST содержит все параметры, а stdin пуст.

Я хотел бы иметь возможность читать эти поля, как обычный человеческий PHP, от $ _POST.

Что делать, чтобы правильно прочитать параметры запроса POST из $ _POST?

Как я только что прочитал в руководстве, исходные данные не доступны с enctype = "multipart / form-data", но вы также можете попробовать

 $fp = fopen('php://stdin', 'rb'); 

Обратите внимание на флаг « b ».

Кроме того, убедитесь, что always_populate_post_data = On в php.ini

Есть ли что-нибудь в переменной $_FILES ?

Есть ли элемент MAX_FILE_SIZE в представленной форме?

Каковы значения здесь?

 echo 'post_max_size = ' . ini_get('post_max_size') . "\n"; echo 'upload_max_filesize = ' . ini_get('upload_max_filesize') . "\n";