2016-03-25 12 views
-3

Ich habe diesen Code unten, um ein einzelnes Bild mit Komprimierung hochzuladen. aber jetzt möchte ich mehrere Bilder hochladen. Kann jemand mit mit mehreren Bild-Upload Hilfe unter dem Code:Benötigen Sie Hilfe beim Hochladen mehrerer Bilder mit Komprimierung

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Upload Compress and Check</title> 
    </head> 
    <body> 
    <form action="" method="post" enctype="multipart/form-data"> 
      <input type="file" name="file" id="file" accept="image/*" /> 
      <input type="submit" name="btnsubmit" value="submin" id="submit" /> 
    </form> 
</body> 
</html> 

<?php 
function compress_image($source_url, $destination_url, $quality) { 
    $info = getimagesize($source_url); 
    if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source_url); 
    elseif ($info['mime'] == 'image/gif') $image = imagecreatefromgif($source_url); 
    elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source_url); 
    elseif ($info['mime'] == 'image/jpg') $image = imagecreatefrompng($source_url); 

    imagejpeg($image, $destination_url, $quality); 

    return $destination_url; 
} 

if(isset($_POST['btnsubmit'])){ 
    if(isset($_FILES['file']['name']) && $_FILES['file']['name'] != ""){ 

     $filename = $_FILES['file']['name']; 
     $file_tmp = $_FILES['file']['tmp_name']; 
     $file_size = $_FILES['file']['size']; 
     $file_type = $_FILES['file']['type']; 
     $file_error = $_FILES['file']['error']; 
     $target_dir = "img/"; 
     $target_file = $target_dir . basename($_FILES["file"]["name"]); 
     $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
     $uploadOk = 1; 

     if(file_exists($target_file)){ exist or not 
      echo "<script>alert('sorry, file already exists.');</script>"; 
      $uploadOk = 0; 
     }else if ($file_size > 500000) { 
      echo "<script>alert('sorry, your file is too large.');</script>"; 
      $uploadOk = 0; 
     }else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") { 
      echo "<script>alert('sorry, only JPG, JPEG, PNG & GIF files are allowed.');</script>"; 
      $uploadOk = 0; 
     }else if($file_error > 0){ 
      echo "<script>alert('Your file is corrupted!');</script>"; 
      $uploadOk = 0; 
     } 

     if($uploadOk == 0){ 
      echo "<script>alert('sorry, your file was not uploaded!');</script>"; 
     }else{ 

      $rand = md5(sha1(rand(10000, 10000000))); 
      $url = $target_dir . $rand . '.jpg'; 
      $filename = compress_image($_FILES["file"]["tmp_name"], $url, 80); 

     } 

    }else{ 
     echo "<script>alert('No image to upload!');</script>"; 
    } 
    } 
?> 

Danke im Voraus .....

+0

So möchten Sie uns nehmen, was Sie für einzelne Datei Uploads und ändern es für Sie, so dass es mehrere Dateien dauert? Was haben Sie versucht, um mehrere Dateien zum Laufen zu bringen? – Jon

+0

@Jon Ja, das was ich will. Wenn möglich, bitte helfen. danke – Vanna

Antwort

0

ändern ein bisschen für die Eingabe "Datei" Element:

<input type="file" multiple name="file[]" id="file" accept="image/*" /> 

Es ist ok, jetzt können Sie $ _FILES ["file"] ["name"] [0] verwenden, um den Namen der ersten Datei zu erhalten, oder _FILES ["file"] ["tmp_name"] [1], um den tmp_name zu erhalten der zweiten Datei und so weiter.

Ich hoffe, Sie verstehen, ich kann nicht mehr erklären, weil ich rufe bin mit ...

+0

Ok. Also müssen Sie name = "file []" hinzufügen und was ist mit PHP-Code. Wie schleife ich es? – Vanna

+0

Sie können für ($ i = 0; $ i chung

+0

für ($ i = 0; $ i Vanna

Verwandte Themen