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.- az elem nevének végére helyezett szögletes zárójelekkel "[]" jelezzük, hogy tömbről van szó.
- 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
- fájlnevek megszámlálásával megkapjuk a feltöltött fájlok darabszámát,
- 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;
}
}
}
}
?>