Ha nem korlátozzuk a feltölthető fájltípusokat, akkor a felhasználók véletlenül vagy szándékosan oda nem illő fájlokkal árasztják el szerverünket. Képek helyett dokumentumokat vagy futtatható fájlokat is kaphatunk, ami sok szempontból veszélyes.
Fontos!
- A fájl típusának és kiterjesztésének vizsgálatát célszerű együtt használni.
A fájl nevét a $_FILES globális PHP tömbben találjuk: $_FILES["file"]["name"] . A fájlnév pont utáni részét hasonlítjuk össze az engedélyezett kiterjesztésekkel.
1. példa:
Képek feltöltése
<?php
//csak képek
$allowedExts = array("gif", "jpeg", "jpg", "png", "JPG");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if (in_array($extension, $allowedExts)) {
echo "Hiba: ".$_FILES["file"]["error"];
} else {
...
//Feltöltött fájl elmentése
...
}
} else {
echo "Nem megfelelő fájl.";
}
?>
2. példa:
Dokumentumok feltöltése
<?php
//csak dokumentumok
$allowedExts = array("txt", "doc", "docx", "pdf", "xls", "xlsx", "ppt", "pptx", "zip", "ppsx");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if (in_array($extension, $allowedExts)) {
if ($_FILES["file"]["error"] > 0) {
echo "Hiba: ".$_FILES["file"]["error"];
} else {
...
//Feltöltött fájl elmentése
...
}
} else {
echo "Nem megfelelő fájl.";
}
?>