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

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

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

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

Ответы [ 2 ]

11 голосов
/ 06 декабря 2010

Вы должны использовать суперглобальный $ _FILES:

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

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

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

$rawPost = file_get_contents('php://input');
0 голосов
/ 06 декабря 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...