Как получить данные POST, отправленные с использованием «application / octet-stream» в PHP?

Вот что я имею в виду. Одна из наших программ имеет форму поддержки, которую пользователи используют для запроса поддержки. Что делает эта форма, она выполняет HTTP POST-запрос на PHP-скрипт, который должен собирать информацию и перенаправлять ее на адрес электронной почты поддержки.

Запрос POST содержит три текстовых поля типа Content-Type: text/plain которые можно легко прочитать в PHP с использованием $_POST['fieldname'] . Однако некоторые из содержимого этого запроса POST являются файлами типа Content-Type: application/octet-stream . Использование $_POST , похоже, не работает с этими файлами. Как я могу прочитать содержимое этих файлов?

Заранее спасибо.

Вы должны использовать суперкоммулятор $ _FILES:

 $contents = file_get_contents($_FILES['myfile']['tmp_name']); 

Дополнительную информацию вы можете найти в руководстве . Это будет работать, только если вы используете кодировку multipart / form-data в своем запросе.

В противном случае вы можете прочитать необработанные данные POST, а затем проанализировать его самостоятельно:

 $rawPost = file_get_contents('php://input'); 

Используйте массив $ _FILES.

Те, кто под суперкоммулятором $ _FILES. Читайте об этом здесь: http://php.net/manual/en/features.file-upload.php

В основном, вы получаете массив, подобный POST, но с такими вещами, как размер файла, временное имя и временное расположение файла, который вы можете использовать для тестирования и перемещения файла в постоянное место.

Дополнительная общая информация из руководства по PHP: http://php.net/manual/en/features.file-upload.php