我有多个类型为file
的输入<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++;
}
这里发生的是只有第一个获得文件名,但没有一个移动到预期的目录或其他地方。
在处理多个文件输入时是否有特定的声明方式?
答案 0 :(得分: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++;
}
答案 1 :(得分: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++;
}