【问题标题】:Can a PHP script start before all POST data is received?可以在收到所有 POST 数据之前启动 PHP 脚本吗?
【发布时间】:2011-04-26 03:09:51
【问题描述】:

我在 Apache 下运行 PHP,我想向页面发送缓慢的 POST 数据,当 POST 数据到达时,该页面将消息写入数据库。我正在使用 WebRequest 从 .NET 应用程序发送数据,并将 SendChunked 设置为 true。

不幸的是,在所有 POST 数据到达之前,PHP 脚本似乎不会开始执行。我查看了 apache 日志,发现请求立即开始,但 PHP 脚本中的 echo strftime(...) 语句显示它直到收到所有 POST 数据后才运行。

有没有办法让 PHP 立即启动?我尝试在 PHP.ini 文件中设置always_populate_raw_post_data = Off,但这没有任何区别。我的请求的内容类型为application/octet-stream,而$HTTP_RAW_POST_DATA 仍然填充了所有的POST 数据。

【问题讨论】:

    标签: php .net apache


    【解决方案1】:

    您可以使用 HTTP PUT 方法执行此操作,但不能使用 POST。

    当客户端使用 PUT 动词时,数据会流式传输到 PHP。可以通过php:://input流逐字节访问,因为它是从客户端发送过来的。

    【讨论】:

      猜你喜欢
      • 2012-05-03
      • 2013-04-04
      • 1970-01-01
      • 2017-07-03
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      • 2021-01-08
      相关资源
      最近更新 更多