logó WEBFEJLESZTÉS, WEBÁRUHÁZ KÉSZÍTÉS
Ingyenes elektronikus tananyag interaktív weboldalak készítéséhez.
visszaVISSZA   
menüMENÜ   

Több fájl feltöltése kliensről



Ha több fájl feltöltését is engedélyezzük, akkor nem praktikus, ha a felhasználóknak azokat egyenként kell feltölteni.

A HTML űrlap módosítása

Ahhoz, hogy egy lépésben több fájl is feltölthető legyen a HTML űrlapon a file típusú input elemet kell csupán módosítanunk.
  1. az elem nevének végére helyezett szögletes zárójelekkel "[]" jelezzük, hogy tömbről van szó.
  2. a multiple="multiple" jellemző megadásával lehetővé tesszük, hogy a felhasználó tallózáskor több fájlt is ki tudjon jelölni.

A PHP kód módosítása

  1. fájlnevek megszámlálásával megkapjuk a feltöltött fájlok darabszámát,
  2. for ciklussal végigjárjuk az össze fájlt. A $_FILES globális PHP tömb vizsgálatakor harmadik indexként a ciklusváltozót használjuk.

Megj.

Ne felejtsük el a korábban tárgyalt ellenőrzéseket több fájl feltöltésénél is alkalmazni!


Példa:

HTML űrlap



...
  <form action="feltolt.php" method="post"
    enctype="multipart/form-data">
      <label for="file">Fájl kiválasztása:</label>
      <input type="file" name="file[]" id="file" multiple="multiple" >
      <br>
      <input type="submit" name="submit" value="Submit">
  </form>
...
 




Példa:

Forráskód


 
<?php
if(isset($_POST['submit'])){
 // A fájlok száma
 $countfiles = count($_FILES['file']['name']); 
 // Sorra vesszük a fájlokat
 for($i=0;$i<$countfiles;$i++){
    $filename = $_FILES['file']['name'][$i];
    if ($_FILES["file"]["error"] > 0) {
      echo "Hiba: ".$_FILES["file"]["error"][$i];
    } else {
      //Feltöltött fájl elmentése
      $FajlNev = $_FILES["file"]["name"][$i];
      $Forras  = $_FILES["file"]["tmp_name"][$i];
      $Cel     = "konyvtar/".$_FILES["file"]["name"][$i];
      if (file_exists($Cel)) {
        echo $Cel . " már létezik. ";
      } else {
        move_uploaded_file($Forras,$Cel);
        echo "Feltöltve: " . $Cel;
      }
    }
  }
}
?>
 



Ahogy a legtöbb honlap, ez a webhely is használ sütiket a weboldalain.