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++;
}

ここで何が起こるかというと、最初の 1 つだけがファイル名を取得し、そのうちの 1 つが予期されたディレクトリまたは他の場所に移動しないということです。

複数のファイル入力を処理するときに宣言する特定の方法はありますか?

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 に答える