$ _Files []数组只显示上传的第一个文件

时间:2010-10-23 17:04:34

标签: php jquery file-upload input

我目前有一个带有单个文件上传输入的表单。

我试过的原始表单输入

<input type="file" name="userFile[]" />  
and  
<input type="file" name="userFile1" />

我还有一个使用

生成更多输入字段的链接

如果尝试过以下方法:
a)

counter = 1;  
    function addInput(){  
counter ++;  
    $('#divName').append('&lt;input type="file" name="userFile[]" ' />);        
}

b)

var counter = 1;  
function addInput(){  
counter++;   
$('#divName').append('&lt;input type="file" name="userFile'+counter+'" ' />);   
}

我不认为这个问题与JS相关,但我认为可能是服务器。

问题在于,当我最后按下“提交”按钮并将文件传递到服务器并尝试访问所有$_FILES['userFile']['name'] / ['size'] / ['error']等值时,可以回显/打印第一个原始表单上载值。我尝试上传大尺寸文件进行测试我知道所有文件都上传了,但一旦到达服务器端,只能访问一个。

任何人都可以告诉我可能发生的事情吗? 我希望我解释了这一点,如果你需要澄清,请问我任何问题。

更多信息

经过一些测试之后,看起来Jquery可能就是问题了。 在上述复制字段的方法中,只有在上传文件时才能识别第一个原始输入。

但是,如果我创建三个原始输入字段并正常上传它们,那么$_FILES数组中的所有文件都会被识别为应该存在。

那么为什么jQuery生成的字段没有在表单中发布?

2 个答案:

答案 0 :(得分:1)

我找到了这篇文章然后找到了答案,这很简单很遗憾。

jQuery not posting all inputs of a form after the .append()

我只需要移动&lt; form&gt;表格外的元素与我的输入,然后它都工作。 我不确定为什么,但它很有趣。 感谢那些帮助过的人。

答案 1 :(得分:0)

我遇到了同样的问题..我所有的努力都是徒劳的,但最后我在PHP手册上找到了一个很好的说明。这很简单但很适合我...

  

“如果您使用表格显示您的内容,则多次上传可能无效   当<form>元素 <table>元素时,表单输入。在这   case 只会上传第一个文件

     

<form>元素放在元素之外,以使其正常工作。“

请点击此链接查看完整备注,有一个功能可以以易于使用的方式重新排列多个上传文件阵列。

http://php.net/manual/en/features.file-upload.multiple.php