Php 通过http post接收xml文件

Php 通过http post接收xml文件,php,http-post,httppostedfile,Php,Http Post,Httppostedfile,我有一个通过HTTPPOST接收xml文件的测试脚本,当我在内部使用它时,它似乎工作正常。当我将脚本移动到可以从外部访问的web服务器时,似乎什么都没有发生。有人有什么想法吗 <?php if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) { $inp = fopen("php://input"); $outp = fopen("xmlfile" . date("YmdHis") . ".xml", "w");

我有一个通过HTTPPOST接收xml文件的测试脚本,当我在内部使用它时,它似乎工作正常。当我将脚本移动到可以从外部访问的web服务器时,似乎什么都没有发生。有人有什么想法吗

<?php   
    if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
    $inp = fopen("php://input"); 
    $outp = fopen("xmlfile" . date("YmdHis") . ".xml", "w"); 
    while (!feof($inp)) { 
        $buffer = fread($inp, 8192); 
        fwrite($outp, $buffer); 
    }        
    fclose($inp); 
    fclose($outp);
    echo "<html><head>test response</head><body>OK</body></html>";
}
?>

确保服务器上的设置是从php.ini打开的

话虽如此,请注意该设置

更新:

尝试查看是否有任何错误,打开错误报告,将以下两行放在脚本顶部:

ini_set('display_errors', true);
error_reporting(E_ALL);

需要检查的其他事项:

  • php://input如果表单具有
    enctype=multipart/form data
  • php://input
    只能读取一次(不太可能,除非脚本中还有其他部分没有显示)
  • POST数据大小不超过Apache的
    LimitRequestBody
    和/或PHP的
    upload\u max\u size
    /
    POST\u max\u size

  • 任何你必须阅读原始输入而不能编写($outp,$\u POST['xml'])的原因。

    Hi,是的,看起来是设置为允许url\u fopen=OnHi,谢谢。我已经试过了,好像有什么错误。基本上,Web服务器上的脚本只是上面的代码+您的更新。不知道问题出在哪里!编辑问题以显示我是如何发布的…不确定这是否是一个原因。您是否首先打开了curl扩展?是的…它对另一个web应用程序有效,并且在我发布到localhost时有效。当我将例如echo放在“test1”中时;在上面的接收脚本中,没有任何内容被回显…所以我想知道它是否被正确发布。你可以试着用另一种方式发帖。
    ini_set('display_errors', true);
    error_reporting(E_ALL);