代码之家  ›  专栏  ›  技术社区  ›  sharkin

在PHP中接收多部分POST数据请求

  •  1
  • sharkin  · 技术社区  · 17 年前

    我希望收到以下内容 HTTP 请求中 PHP:

    Content-type: multipart/form-data;boundary=main_boundary
    
    --main_boundary
    Content-type: text/xml
    <?xml version='1.0'?>
    <content>
    Some content goes here
    </content>
    
    --main_boundary
    Content-type: multipart/mixed;boundary=sub_boundary
    
      --sub_boundary
      Content-type: application/octet-stream
    
      File A contents
    
      --sub_boundary
      Content-type: application/octet-stream
    
      File B contents
    
      --sub_boundary
    
    --main_boundary--
    

    (注意:我缩进了子部分,只是为了让这篇文章更易读。)

    我对PHP不是很熟练,我想得到一些帮助/指针,以弄清楚如何在PHP代码中接收这种多部分表单请求。我曾经写过一些代码,在那里我收到了一个标准的HTML表单,然后我可以通过在 $HTTP_GET_VARS 数组,但在这种情况下没有表单元素名称,表单数据部分不是线性的(即子部分=多级数组)。

    感谢任何帮助!

    /罗伯特

    3 回复  |  直到 10 年前
        1
  •  3
  •   pilsetnieks    10 年前

    $HTTP_GET_VARS , $HTTP_POST_VARS 等是一种过时的符号,你应该使用 $_GET , $_POST 等等。

    现在,文件内容应该在 $_FILES 全局数组,而如果没有元素名称,我不确定其余内容是否会显示在 $_费用 不管怎样,如果 always_populate_raw_post_data 设置为true php.ini文件 ,数据应在 $HTTP_RAW_POST_DATA 此外,阅读时应显示整个请求 php://input .

        2
  •  1
  •   Heavy_Bullets    12 年前

    您应该注意:

    php://input允许您读取原始POST数据。它是$HTTP_RAW_POST_DATA的内存密集型替代方案,不需要任何特殊的php.ini指令。php://inputenctype=multipart/form数据不可用

    来自php手册。..看来php://input不可用

    还不能评论,但这是为了补充皮尔斯的回答

        3
  •  -2
  •   gizmo    17 年前

    上传的文件可以通过$_FILE全局变量访问,其他参数可以通过$_GET全局变量访问。

    推荐文章