Может ли скрипт PHP запускаться до получения всех данных POST? - PullRequest
3 голосов
/ 16 октября 2010

Я использую PHP под Apache, и я хотел бы отправить медленный поток данных POST на страницу, которая будет записывать сообщения в базу данных по мере поступления данных POST. Я отправляю данные из приложения .NET, используя WebRequest, и для SendChunked установлено значение true.

К сожалению, похоже, что PHP-скрипт не начинает выполняться, пока не поступят все данные POST. Я посмотрел в журнале apache и вижу, что запрос начинается сразу же, но операторы echo strftime(...) в сценарии PHP показывают, что он не выполняется до тех пор, пока не будут получены все данные POST.

Есть ли какой-нибудь способ заставить PHP начать прямо сейчас? Я попытался установить always_populate_raw_post_data = Off в файле PHP.ini, но это не имело никакого значения. Мой запрос имеет тип содержимого application/octet-stream, а $HTTP_RAW_POST_DATA по-прежнему заполнен всеми данными POST.

1 Ответ

5 голосов
/ 16 октября 2010

Это можно сделать с помощью метода HTTP PUT , но не с помощью POST.

Когда клиент использует глагол PUT, данные передаются в PHP.Доступ к нему можно получить через байтовый поток php:://input, отправленный клиентом.

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