【问题标题】:HTTP Post file to webserver failureHTTP Post 文件到网络服务器失败
【发布时间】:2012-09-28 09:46:09
【问题描述】:

从我们的离线应用程序中,我们希望通过 HTTP Post 将 xml 文件发布到我们的网络服务器。这工作正常,但当 xml 大于 650KB 时,帖子失败。

我们网络服务器上的 PHP 设置:

  • memory_limit 128M
  • post_max_size 32M
  • upload_max_filesize 16M

有人知道问题出在哪里吗?

更新

我在我们的网络服务器上测试了一些东西。我用 textarea 制作了一个表单并将 XML 粘贴到 textarea 中。当我提交表单时,我没有得到任何回复的 POST 结果,但是当我粘贴一半 XML 时,我得到了结果。

奇怪的是我在发布整个 XML 时没有收到错误消息。

【问题讨论】:

  • 请告诉我你的错误信息,你的文件夹中还剩下多少空间?
  • 您还应该显示代码(或其中的一部分),以便清楚如何发送 HTTP POST 请求。
  • 我在我们的离线应用程序中没有收到错误消息。我们有足够的空间来接收 XML。
  • @hakra 我们离线应用程序中的代码是用 Omnis 编写的。这是发布文件的部分 HTTPPost (lvHOST,'/gateway/xml.php',lvList,'') Returns lvSOCKET HTTPRead (lvSOCKET,lvResult) Returns %charcount HTTPClose (lvSOCKET) Returns %status
  • 我会调查两件事 - 这可能是网络问题 - 即尝试从同一个网络服务器本身发布帖子。如果某些网络设备限制帖子大小,它可能会在本地主机上通过,否则它不会。此外,如果您使用的是 apache,请检查是否设置了 LimitRequestBody 指令,因为这也会产生问题。

标签: php http post


【解决方案1】:

试着把它放在你在表单提交时调用的 php 文件的顶部:

set_time_limit(0);

也许您的连接速度太慢,无法在 php 脚本的允许执行时间内发送该文件。

【讨论】:

    【解决方案2】:

    运行 phpinfo() 并检查这些变量是否是您所想的。也许某些 .htaccess 或其他网络服务器配置文件正在覆盖它们。还要检查是否没有连接超时。

    当post失败时你从服务器得到什么响应?

    【讨论】:

    • phpinfo() 和我想的变量一模一样。
    • 我没有得到任何回应。即使我尝试发布带有 XML 文本区域的表单,我也没有得到响应。如果我减少 XML,我会得到一个成功的帖子。
    • 您的应用程序是否正确发送了数据?可能是应用无法处理太大的 POST。
    • 是的,它发送正确。较小尺寸的 XML 运行良好。正如我所说,当我在我的网络服务器上的 PHP 脚本中发布带有大型 XML 的文本区域时,它也不起作用,但我没有收到错误(较小的 XML 文件在网络服务器上运行良好。
    • 我已经知道使用小的 XML 一切都很好,我问是否正确发送了更大的 XML?它会离开客户吗? apache 和 php 日志对此有何评论?服务器收到数据但没有响应还是什么也没收到?
    猜你喜欢
    • 2011-03-27
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多