0

我是 php 的初学者,现在正在用 php 做一个项目。我想上传图片(最多四个图片文件)。我使用以下代码上传图片。

<?php   if(isset($_POST['submit'])) {
    $count=count($_FILES["images"]["name"]);


for($i=0;$i<$count;$i++) {      if ((($_FILES["images"]["type"][$i] == "image/gif")  || ($_FILES["images"]["type"][$i]  == "image/jpeg") || ($_FILES["images"]["type"][$i]  == "image/pjpeg")) && ($_FILES["images"]["size"][$i] < 100000)) {

 if ($_FILES["images"]["error"][$i]  > 0)  {  echo "File Error : " . $_FILES["images"]["error"][$i]  . "<br />";   }   else   {   echo "Upload File Name: " . $_FILES["images"]["name"][$i]  . "<br />";  echo "File Type: " . $_FILES["images"]["type"][$i]  . "<br />";   echo "File Size: " . ($_FILES["images"]["size"][$i]  / 1024) . " Kb<br />";


   if (file_exists("public/images/".$_FILES["images"]["name"][$i] ))   {    echo "<b>".$_FILES["images"]["name"][$i]  . " already exists. </b>";    }    else   {
    move_uploaded_file($_FILES["images"]["tmp_name"][$i] ,"public/images/".             $_FILES["images"]["name"][$i] );
    echo "Stored in: " . "public/images/" . $_FILES["images"]["name"][$i] ."<br />";    ?>    Uploaded File:<br>   <img src="public/images/<?php echo $_FILES["images"]["name"][$i] ; ?>" alt="Image path    Invalid" >   <?php   }   }   }else  {   echo "Invalid file detail ::<br> file type ::".$_FILES["images"]["type"][$i] ." ,    file    size::: ".$_FILES["images"]["size"][$i] ;   }  }    }?>
4

1 回答 1

2

第一:请学会缩进!

你的计数不好。您正在计算$_FILES['images']['name']大小,但您需要计算有多少$_FILES['images']。所以像这样改变你的代码(注意[$i]键的新位置):

<?php
if (isset($_POST['submit'])) {
    $count = count($_FILES["images"]);
    for ($i = 0; $i < $count; $i++) {
        if ((($_FILES["images"][$i]["type"] == "image/gif") || ($_FILES["images"][$i]["type"] == "image/jpeg") || ($_FILES["images"][$i]["type"] == "image/pjpeg")) && ($_FILES["images"][$i]["size"] < 100000)) {
            if ($_FILES["images"][$i]["error"] > 0) {
                echo "File Error : " . $_FILES["images"][$i]["error"] . "<br />";
            } else {
                echo "Upload File Name: " . $_FILES["images"][$i]["name"] . "<br />";
                echo "File Type: " . $_FILES["images"][$i]["type"] . "<br />";
                echo "File Size: " . ($_FILES["images"][$i]["size"] / 1024) . " Kb<br />";
                if (file_exists("public/images/" . $_FILES["images"][$i]["name"])) {
                    echo "<b>" . $_FILES["images"][$i]["name"] . " already exists. </b>";
                } else {
                    move_uploaded_file($_FILES["images"][$i]["tmp_name"], "public/images/" . $_FILES["images"][$i]["name"]);
                    echo "Stored in: " . "public/images/" . $_FILES["images"][$i]["name"] . "<br />";
                    ?>    Uploaded File:
                    <br>   
                    <img src="public/images/
                    <?php echo $_FILES["images"][$i]["name"]; ?>" alt="Image path    Invalid" >   
                <?php
                }
            }
        } else {
            echo "Invalid file detail ::<br> file type ::" . $_FILES["images"][$i]["type"] . " ,    file    size::: " . $_FILES["images"][$i]["size"];
        }
    }
}?>

假设您的 html 是这样的,则此代码有效:

<input type="file" name="images[]" />
<input type="file" name="images[]" />
<input type="file" name="images[]" />
<input type="file" name="images[]" />
<input type="file" name="images[]" />
<input type="file" name="images[]" />
于 2016-07-13T11:38:39.983 回答