代码之家  ›  专栏  ›  技术社区  ›  Tom Smykowski

在PHP中正确读取请求超过1450b的POST请求参数?

  •  4
  • Tom Smykowski  · 技术社区  · 16 年前

    $fp = fopen('php://stdin', 'r');
    $all = "";
    while($line = fgets($fp, 4096)) { 
        $all .= $line; 
    }
    echo $all;
    

    看起来像这样:

    ------------V2ymHFg03ehbqgZCaKO6jy
    Content-Disposition: form-data; name="intro"
    
    O
    ------------V2ymHFg03ehbqgZCaKO6jy
    Content-Disposition: form-data; name="title"
    
    T
    ------------V2ymHFg03ehbqgZCaKO6jy
    Content-Disposition: form-data; name="apiKey"
    
    98d32fdsa
    ------------V2ymHFg03ehbqgZCaKO6jy
    Content-Disposition: form-data; name="method"
    
    /media/add
    ------------V2ymHFg03ehbqgZCaKO6jy
    Content-Disposition: form-data; name="upload_field"; filename="original_filename.png"
    Content-Type: image/png
    
    
    ------------V2ymHFg03ehbqgZCaKO6jy--
    

    如您所见,我得到了4个名为intro、title、apiKey和method的参数,还有一个名为original_filename.png的文件,大小为1460字节。

    很遗憾,我的$\u POST数组为空。奇怪的是,当原始文件名小于1450字节时,POST包含所有参数,stdin为空。

    我想能够阅读这些领域像正常人PHP从$\u职位。

    如何从$\u POST正确读取此POST请求参数?

    2 回复  |  直到 12 年前
        1
  •  1
  •   Narcis Radu    16 年前

    正如我刚刚在手册中读到的那样,原始post数据不适用于enctype=“multipart/form data”,但是您也可以尝试使用

    $fp = fopen('php://stdin', 'rb');
    

    请注意 b “国旗。

    另外,确保 始终\u populate \u post \u data=On 在php.ini中

        2
  •  1
  •   pferate    16 年前

    房间里有什么东西吗 $_FILES 变量?

    MAX_FILE_SIZE 提交表单中的元素?

    这里的价值是什么?

    echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
    echo 'upload_max_filesize = ' . ini_get('upload_max_filesize') . "\n";
    
    推荐文章