2017-01-01 44 views
0

插入代碼顯示多幅圖像:如何上傳和使用PHP

<form method = "POST" action = "add_visual.php" enctype="multipart/form-data"> 
<div class="form-group"> 
    <label for="exampleInputFile">Image input</label> 
    <input type="file" name = "files[]" multiple> 
    <button type="submit" name = "upload" class="btn btn- default">Upload</button> 
</div> 

顯示代碼:

$count = 0; // to add <div class="row"> after every 4 image display 

$sql = "SELECT img_name, address FROM visual ORDER BY visual_id DESC"; 
$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 
// output data of each row 
while($row = mysqli_fetch_assoc($result)) 
{ 

    echo '<div class="col-lg-3 col-md-4 col-xs-6 thumb">'; 
    echo '<a class="thumbnail" href="#">'; 
    echo '<img class="img-responsive" src="' .$row["address"] . $row["img_name"] . '" alt="">'; 
    echo '</a>'; 
    echo '</div>'; 

    $count++; 
    if($count % 4 == 0) 
    { 
     echo '</div>'; 
     echo '<div class="row">'; 
    } 

} 
} 

else { 
echo "0 results"; 
} 
mysqli_close($conn); 

這是它如何處理一張照片,做多張圖片中的任何方式? 這裏是如何將數據輸入到表單的php過程。

<?php 

include 'dbconnect.php'; 

if(isset($_POST["files"])) 
{  
/*   
    $file = rand(1000,100000)."-".$_FILES['file']['name']; 
    $file_loc = $_FILES['file']['tmp_name']; 
    $folder="images/"; 

    move_uploaded_file($file_loc,$folder.$file); 

    $sql="INSERT INTO visual(img_name, address) VALUES('$file', '$folder')"; 

    mysqli_query($conn,$sql); 
*/ 
extract($_POST); 
$error=array(); 
$extension=array("jpeg","jpg","png","gif"); 
foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name) 
     { 
      $file_name=$_FILES["files"]["name"][$key]; 
      $file_tmp=$_FILES["files"]["tmp_name"][$key]; 
      $ext=pathinfo($file_name,PATHINFO_EXTENSION); 
      if(in_array($ext,$extension)) 
      { 
        if(!file_exists("photo_gallery/".$txtGalleryName."/".$file_name)) 
       { 
        move_uploaded_file($file_tmp=$_FILES["files"] ["tmp_name"][$key],"images/".$file_name); 
       } 
       /* 
       else 
       { 
        $filename=basename($file_name,$ext); 
        $newFileName=$filename.time().".".$ext; 
        move_uploaded_file($file_tmp=$_FILES["files"] ["tmp_name"][$key],"photo_gallery/".$txtGalleryName."/".$newFileName); 
       } 
       */ 
      } 
      else 
      { 
       array_push($error,"$file_name, "); 
      } 
     } 
} 
?> 

任何幫助,將不勝感激。我有點迷失在如何進行多重上傳,我錯過了什麼。謝謝。

+1

檢查此鏈接:http://stackoverflow.com/questions/9531856/uploading-multiple-images-with-one - 輸入字段 –

+0

嗨@prakashtank我很感謝你的努力,但如果你能從我的代碼中指導我,我會錯過什麼。 – struppy

+0

@prakashtank我已經修改了你和Serg建議的代碼,還有什麼我應該做的嗎? – struppy

回答

0

<input type="file" name = "file[]" multiple>應該<input type="file" name = "files[]" multiple>

+0

謝謝您指出。我會修改代碼。 – struppy

+0

還有什麼我不得不添加或改變,使其工作,我錯過了什麼? – struppy

0

普拉卡什是正確的,但更重要的是,文件並不存儲在$_POST,這是你if聲明取決於什麼。這種情況從來都不是真的。另一個字段添加到您的形式,如果要檢查$_POST或檢查文件的時候了:

if(isset($_FILES["files"])) 
{ 
    extract($_POST); 
    $error=array(); 
    ... 
}