2011-12-12 141 views
3

我无法从$ _FILES中检索我的php代码中的多个文件。 这里是输入形式:

<form enctype="multipart/form-data" action="file-upload.php" method="POST"> 
    Upload the several files:<input type="file" multiple="multiple" name="uploaded" id="id_upload" /> 
    <input type="submit" value="Upload" /> 
</form> 

下面是从文件upload.php的PHP代码:

// first let's find out how many files were uploaded.. 
$numUploadedfiles = count($_FILES['uploaded']); 
$num_FILES = count($_FILES); 
     // BOTH COUNTS ARE 5. I SELECT 7 FILE NAMES FOR UPLOADING THOUGH. 


echo "<br>" . "The number of uploaded files is == " . $numUploadedfiles; 
echo "<br>" . "Here is the name of _FILES['uploaded']: " . $_FILES['uploaded']; 
    // THE NAME REPORTED IS 'array' AND THE COUNT IS 5.. 


echo "<br>" . "The count size of _FILES is == " . $num_FILES; 
echo "<br>" . "Here is the name of _FILES => " . $_FILES; 
     // HERE ALSO, THE NAME REPORTED IS 'array' AND THE COUNT IS 5. 


echo "<br>file temp_name " . $i . " is: " . $_FILES['uploaded']['tmp_name']; 
echo "<br>file name " . $i . " is: " . $_FILES['uploaded']['name']; 
     // THE NAME REPORTED HERE IS THE FILENAME OF LAST OF THE 7 FILES I UPLOADED (not sure why.) 


echo "<br>" . "Here are the filenames: "; 
for($i = 0; $i < $numUploadedfiles; $i++) 
{ 
    echo "<br>filename " . $i . " is: " . $_FILES['uploaded'][$i]; 
} 
exit(); 

当我运行这就是,“for”循环开始时会发生什么,一个错误消息表示$ i索引到数组_FILES ['uploaded'] [$ i]无效。

这是为什么?我需要获得这7个文件名并能够将它们保存在服务器上。我怎么能:

1)获得一个准确的“计数”的文件数量?当我上传7个文件时,上面的代码给出了5的计数

2)如何通过'for'循环中的_FILES数组正确索引? PHP告诉我$ i的值为0,1,2,3 .... 无效。

(PS我使用的输入类型=“文件”多个=“多个”名称=“上传” ID =“id_upload”从我看到在Retrieving file names out of a multi-file upload control with javascript实现多文件上传的示例代码)

+1

看过这个吗?可以帮忙(查看评论):http://verens.com/2009/12/28/multiple-file-uploads-using-html5/ –

+1

是的,这太可怕了!我不知道为什么很难找到有关它是如何工作的信息,以及为什么它非直观地工作。我努力寻找那个信息。无论如何,很高兴你现在能够正常工作。 –

回答

5

你名称应该是数组:

 
<input type="file" name="uploaded[]" id="id_upload" /> 

+0

好吧 - 不过现在当我检查$ uploaded_size = $ _FILES ['uploaded'] ['size'];价值超过70,000,000!为什么? – SandHawkerTech

+0

感谢Sudhir,这是让我的代码正常工作的'第一步'。第二步是基督徒提到上面评论中的文章。 – SandHawkerTech

0

此代码没有实现您的目标。你应该使用几个输入标签。

如果你想上传几个文件但文件数量是可变的,你可以使用java脚本获取文件数