2016-12-27 69 views
0

我想准备5张照片上传表单,用户需要一次选择全部5张照片并提交表格 然后我需要将所有5张照片存储在目标目录中,方法是将图像重命名为“ 1.jpg,2.jpg,3.jpg,4.jpg,5.jpg“。我只存储一个图像,但在添加For循环以保存多个文件不工作....请支持。添加更多图片由php形式

//图片上传表单

<form action="saveinntion.php" method="post" enctype="multipart/form-data"> 

    <h1>Upload Your Innovation</h1 
    <fieldset> 
     <legend><span class="number">4</span>Upload Images</legend> 

     <input type="file" name="img1" id="img1" > 
     </br> 
     <input type="file" name="img2" id="img2"> 
     </br> 
     <input type="file" name="img3" id="img3"> 
     </br> 
     <input type="file" name="img4" id="img4"> 
     </br> 
     <input type="file" name="img5" id="img5"> 
     </br> 
    </fieldset> 
    <button type="submit">Submit</button> 
</form> 

saveinntion.php文件

<?php 
include("dbconnection.php"); 
$target_dir = "Upload/"; 
$img=$_POST['img']; 

for ($i = 0; $i < 5; $i++) { 
    $target_file = $target_dir . basename($_FILES['$img[]']["name"]); 
    $uploadOk = 1; 
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 

    if (file_exists($target_file)) { 
     echo "Sorry, file already exists."; 
     $uploadOk = 0; 
    } 

    if ($_FILES['$img[]']["size"] > 500000) { 
     echo "Sorry, your file is too large."; 
     $uploadOk = 0; 
    } 

    if($imageFileType != "jpg" && $imageFileType != "jpeg") { 
     echo "Sorry, only JPG & JPEG files are allowed."; 
     $uploadOk = 0; 
    } 

    if ($uploadOk == 0) { 
     echo "Sorry, your file was not uploaded."; 
    } else { 
     if (move_uploaded_file($_FILES['$img[]']["tmp_name"], $target_file)) { 
      echo "The file ". basename($_FILES['$img[]']["name"]). " has been uploaded."; 
     } else { 
      echo "Sorry, there was an error uploading your file."; 
     } 
    } 
} 
header("Location: upload1.php?id=$msg"); 
?> 
+0

您可以创建一个数组。并根据需要设置每个HTML字段。 –

+1

而这段代码真的适用于第一张图片?我会很惊讶,因为你引用了你的'$ _POST ['img']'而你的表单中没有任何东西被称为“img”。 – Twinfriends

+0

$ img = $ _ POST ['img1'];添加但未解决 –

回答

2

你的问题是你的命名。作为@Twinfriends在命令中说,这是极不可能上传任何文件

用$ _FILES取代$ _FILES [ '$ IMG []'] [ 'IMG'。($ I + 1)]在你的代码。

线#5

$target_file = $target_dir . basename($_FILES['img'.($i+1)]["name"]); 

行#13

if ($_FILES['img'.($i+1)]["size"] > 500000) { 

行#25

if (move_uploaded_file($_FILES['img'.($i+1)]["tmp_name"], $target_file)) { 
    echo "The file ". basename($_FILES['img'.($i+1)]["name"]). " has been uploaded."; 

要重命名的文件。

$imageFileType = pathinfo($_FILES['img'.($i+1)]["name"],PATHINFO_EXTENSION); 
$target_file = $target_dir . ($i+1).".".$imageFileType; 
+0

在我的解决方案中,不需要$ img变量。 ($ i + 1)** – reza

+0

可以将error_reporting(E_ALL); ini_set('display_errors',1);在页面上方,看看你得到了什么错误。 – reza

+0

您必须建议更改HTML表单... – SaidbakR