0

我有多个文件类型的输入

<form  name="vform" method="post" enctype="multipart/form-data" >
  <input type=file name='thumbs1' />
  <input type=file name='thumbs2' />
  <input type=file name='thumbs3' />
  ... etc
</form>

假设我得到了文件输入的计数= 3

$i = 1;
while($i <= 3)
{
   $thumb = "thumbs".$i;
   $fileName = $_FILES['$thumb']['name'];
   $tmpName  = $_FILES['$thumb']['tmp_name']; 
   $filePath = "directory/";

   if(move_uploaded_file($tmpName, $filePath)){echo " ";}else{echo " ";}

   $i++;
}

这里发生的是只有第一个获得文件名,但没有一个移动到预期的目录或其他任何地方。

处理多个文件输入时是否有特定的声明方式?

4

2 回答 2

2

删除单引号$_FILES['$thumb']并将其更改为$_FILES[$thumb]

PHP 不会解析单引号内的变量' '

move_uploaded_file功能上,您需要在移动之前指定目的地的文件名

$i = 1;
while($i <= 3)
{
   $thumb = "thumbs".$i;
   $fileName = $_FILES[$thumb]['name'];
   $tmpName  = $_FILES[$thumb]['tmp_name']; 
   $filePath = "directory/";

   if(move_uploaded_file($tmpName, $filePath.$fileName)){echo " ";}else{echo " ";}

   $i++;
}
于 2012-12-06T06:46:25.937 回答
0

也许中的单引号files会是问题,试试这个

$i = 1;
while($i <= 3)
{
   $thumb = "thumbs".$i;
   $fileName = $_FILES[$thumb]['name'];
   $tmpName  = $_FILES[$thumb]['tmp_name']; 
   $filePath = "directory/".$filename;

   if(move_uploaded_file($tmpName, $filePath)){echo " ";}else{echo " ";}

   $i++;
}
于 2012-12-06T06:51:23.860 回答