繁体   English   中英

将多个图像上载到文件夹,每个输入具有不同的名称

[英]Upload multiple images to a folder with each input having a different name

我正在尝试使用PHP管理将多个图像上传到文件夹:

在PHP表单中

<?php
  $success = 0;
  $fail = 0;
  $uploaddir = 'uploads/';
  for ($i=0;$i<4;$i++)
  {
   if($_FILES['userfile']['name'][$i])
   {
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name'][$i]);
    $ext = strtolower(substr($uploadfile,strlen($uploadfile)-3,3));
    if (preg_match("/(jpg|gif|png|bmp)/",$ext))
    {
     if (move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $uploadfile)) 
     {
      $success++;
     } 
     else 
     {
     echo "Error Uploading the file. Retry after sometime.\n";
     $fail++;
     }
    }
    else
    {
     $fail++;
    }
   }
  }
  echo "<br> Number of files Uploaded:".$success;
  echo "<br> Number of files Failed:".$fail;
?>

在HTML表单中

<form enctype="multipart/form-data" action="upload.php" method="post">
Image1: <input name="userfile[]" type="file" /><br />
Image2: <input name="userfile[]" type="file" /><br />
Image3: <input name="userfile[]" type="file" /><br />
Image4: <input name="userfile[]" type="file" /><br />
<input type="submit" value="Upload" />
</form>

正如您在HTML表单中看到的那样,输入名称是userfile []。 现在我的HTML输入名称如下:picture01,picture02,picture 03等...

如何修改PHP代码以使我的输入名称{:picture01,picture02,picture 03}而不是userfile []。

谢谢。

UPDATE

我希望上面的内容适合我的HTML表单

<form enctype="multipart/form-data" action="upload.php" method="post">
    Picture 01<input id="picture01"  name="picture01" type="file" ><br />
    Picture 02<input id="picture02"  name="picture02" type="file" ><br />
   Picture 03<input id="picture03"  name="picture03" type="file" ><br />
    Picture 04<input id="picture04"  name="picture04" type="file" ><br />
    <input type="submit" value="Upload" />
    </form>

此代码在本地工作。 它使用了您的代码和php.net中的示例的组合。 您应该使用pathinfo来获取扩展,但这是一个小细节。

form.html

<form enctype="multipart/form-data" action="upload.php" method="post">
Image1: <input name="userfile[]" type="file" /><br />
Image2: <input name="userfile[]" type="file" /><br />
Image3: <input name="userfile[]" type="file" /><br />
Image4: <input name="userfile[]" type="file" /><br />
<input type="submit" value="Upload" />
</form>

upload.php的:

<?php
error_reporting(E_ALL);
ini_set("display_errors",1);
$success = 0;
$fail = 0;

$uploads_dir = 'uploads';
$count = 1;
foreach ($_FILES["userfile"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["userfile"]["tmp_name"][$key];
        $name = $_FILES["userfile"]["name"][$key];
        $uploadfile = "$uploads_dir/$name";
        $ext = strtolower(substr($uploadfile,strlen($uploadfile)-3,3));
        if (preg_match("/(jpg|gif|png|bmp)/",$ext)){
            $newfile = "$uploads_dir/picture".str_pad($count++,2,'0',STR_PAD_LEFT).".".$ext;
            if(move_uploaded_file($tmp_name, $newfile)){
                $success++;
            }else{
                echo "Couldn't move file: Error Uploading the file. Retry after sometime.\n";
                $fail++;
            }
        }else{
            echo "Invalid Extension.\n";
            $fail++;
        }
    }
}
echo "<br> Number of files Uploaded:".$success;
echo "<br> Number of files Failed:".$fail;

更改表单中的名称后,在尝试获取文件的数组元素时更改名称

恩。

echo $_FILES["picture$i"]['name'];

并改变为此

for ($i=1;$i<=4;$i++)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM