0

投稿値からディレクトリを作成し、そのディレクトリに画像を挿入しようとしていますが、どういうわけか何かが足りないので、何が間違っているのかわかりません。私のコード

 <form method="post" action="img.php" enctype="multipart/form-data">
       F name
      <input type="text" name="fname"/>

       L Name
       <input type="text" name="lname"/>

      File 1
      <input type="file" name="image[]"> 

      File 2
      <input type="file" name="image[]"> 

      File 3
      <input type="file" name="image[]"> 

     File 4
     <input type="file" name="image[]"> 

     File 5
     <input type="file" name="image[]"> 

     File 6
     <input type="file" name="image[]"> 
   <input TYPE="submit" name="upload" value="Add Member"/>
 </form>

  <?php
   include 'dbc.php';
    $fname = $_POST['fname'];
    $lname = $_POST['lname'];
    if (!file_exists($_POST['fname'])) {
    $uploaddir = mkdir($_POST['fname']);
  }

for ($i=0;$i<20;$i++)
  {
   if($_FILES['image']['name'][$i])
   {
    $uploadfile = $uploaddir . basename($_FILES['image']['name'][$i]);
    $ext = strtolower(substr($uploadfile,strlen($uploadfile)-3,3));
    if (preg_match("/(jpg|gif|png|bmp)/",$ext))
    {
     move_uploaded_file($_FILES['image']['tmp_name'][$i], $uploadfile); 
    }
   }
  }

  $fname = mysql_real_escape_string($fname);
  $lname = mysql_real_escape_string($lname);
  $sql = "insert into image (fname, lname) values ('$fname','$lname')";
  $result = mysql_query($sql) or die ("Could not insert data into DB: " ;

  ?>

同じフォームを使用して画像を投稿し、フォルダーを作成しています。

4

1 に答える 1

0

mkdirブール値を返すため、$uploaddir期待どおりに変数にフォルダー名が含まれていません

私の推奨事項は次のようなものです。

$fname = $_POST['fname'];
$uploaddir = $fname; // folder name
if (!is_dir($fname)) {
    mkdir($fname);
}

for($i = 0; $i < sizeof($_FILES['image']); $i++) {
    if($_FILES['image']['name'][$i]) {
        $uploadfile = $uploaddir . basename($_FILES['image']['name'][$i]);
        $ext = strtolower(substr($uploadfile, -3));
        if (preg_match("/(jpg|gif|png|bmp)/",$ext)) {
            move_uploaded_file($_FILES['image']['tmp_name'][$i], $uploadfile); 
        }
    }
}
于 2013-10-25T20:02:46.143 に答える