1

我想收到以下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数组中的索引键来访问表单元素,但在这种情况下,没有表单元素名称,表单数据部分也没有线性(即子部分=多级数组)。

感谢您的帮助!

/罗伯特

4

3 回答 3

3

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

现在,文件内容应该在$_FILES全局数组中,而如果没有元素名称,我不确定其余内容是否会显示在$_POST. 无论如何,如果在php.inialways_populate_raw_post_data中设置为 true ,则数据应该在. 此外,阅读php://input时应该显示整个请求。$HTTP_RAW_POST_DATA

于 2008-09-19T10:07:14.733 回答
1

你应该注意:

“php://input 允许您读取原始 POST 数据。它是 $HTTP_RAW_POST_DATA 的内存密集型替代方案,不需要任何特殊的 php.ini 指令。php://input 不适用于 enctype=”multipart/form-data”</p>

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

尚无法发表评论,但这旨在补充 pilsetnieks 的答案

于 2013-08-16T00:04:05.697 回答
-2

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

于 2008-09-19T09:52:00.137 回答