【发布时间】:2011-05-29 19:35:37
【问题描述】:
我有一个允许动态复制表单域的表单。该表单允许文件上传和文本输入,因此数据在 $_POST 和 $_FILES 数组中发送。
初始输入集如下所示:
<input type="text" name="question[1][text]" />
<input type="file" name="question[1][file]" />
<input type="text" class="a" name="answer[1][text][]" />
<input type="file" name="answer[1][file][]" />
当重复的字段增加时,它们看起来像这样:
<input type="text" name="question[2][text]" />
<input type="file" name="question[2][file]" />
<input type="text" class="a" name="answer[2][text][]" />
<input type="file" name="answer[2][file][]" />
更复杂的是,“答案”表单字段也可以重复(因此 [] 位于“答案”名称数组的末尾。
如何解析发布的 $_FILES 数组?我尝试过这样的事情:
foreach ($_FILES['question'] as $p_num)
{
echo $p_num['file']['name'];
foreach ($_FILES['answer'] as $a_num)
{
echo $a_num['file']['name'];
}
}
但我收到“未定义的索引:文件...”错误。如何解析发布的值。
【问题讨论】:
-
可能的。使用 print_r($_FILES) 和 print_r($_POST) 设计一种方法使其匹配。 $_FILES 有一个覆盖数组结构。所以,重命名。
-
谢谢马里奥,我正在调查这个。
-
如果您包含一些来自 print_r($_FILES) 和 print_r($_POST) 的示例输出,我们可能会为您提供帮助。
-
@GWW 我在这里保存了一个临时脚本:superuntitled.com/temp.php
标签: php file-upload