2016-12-27 66 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