A maximális fájlméret és fájltípus korlátozható. A fájlok neve és könyvtára is
megadható. Eredeti és kép esetén thumbnail képek könyvtára is. Fájlnév egyezés
esetén a fájlok felülírhatók, vagy kaphatnak numerikus megkülönböztető jelet.
Pl.: "_1". A fájlok egyelőre minden esetben csak url barát formában menthetők
el. Tehát nincs se szóköz, se speciális karakter. Ezek automatikusan lesznek
lecserélve ékezetmentes karakterekre. Vagy speciális karakterek esetén a rájuk
leginkább hasonlító egyszerű karakterre. Példa:
<?php
require_once 'uploader/Uploader.php';
$msg = "";
$up = new Uploader();
$up->setInputName('file[egyik]');
if ($up->requested()) {
if ($up->validate(array(Uploader::E_NO_FILE))) {
$up->upload();
$msg = "Sikeres fájlfeltöltés";
} else {
$msg = implode("<br />\n", $up->errorMessages());
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<div id="container">
<div id="msg"><?php print $msg; ?></div>
<form action="" method="post" enctype="multipart/form-data">
<div>
<input type="hidden" name="MAX_FILE_SIZE" value="50000" />
Fájl: <input type="file" name="file[egyik][]" />
<br /><input type="file" name="file[masik][]" />
<input type="submit" value="Feltöltés" />
</div>
</form>
</div>
</body>
</html>
----------------------------------------------------------------------------
Metódusok:
- defaultReplacement($defaultReplacement=null):
Visszaadja, hogy a fájlok automatikus átnevezésekor mire legyenek helyettesítve
az ismeretlen, vagy a whitespace karakterek. Alapértelmezett: '-'
$defaultReplacement paramétert megadva be is állítja az értéket.
- thumbnail($onoff=null):
Visszaadja, hogy kell-e thumbnmail kép is (logikai érték).
Az logikai $onoff paraméterrel hívva be- vagy kikapcsolja azt előtte.
Metódus aliasok a be és kikapcsolásra: thumbnailOn() és thumbnailOff()
(Nyilván ezeknek csak képfeltöltésnél van értelme)
- overwrite($onoff=null):
Visszaadja logikai értékként, hogy a már létező, azonos nevű fájlokat felül
kell-e írni.
Az logikai $onoff paraméterrel hívva be- vagy kikapcsolja a felülírást előtte.
Metódus aliasok a be és kikapcsolásra: overwriteOn() és overwriteOff()
- ignoreExtension($onoff=null):
Visszaadja, legyen-e figyelmen kívül hagyva a kiterjesztés fájlnév egyezés
vizsgálatkor true, ha igen. Egyébként false. Vagyis ha a fájlnév csak a
kiterjesztésben különbözik, akkor is felülírja, ha az overwrite(true) vagy
- overwriteOn() meg lett hívva. Akkor hasznos, ha például egy avatart kell
feltölteni, de annak lehet png vagy jog is a kiterjesztése. Akár gif.
Így csak maradhat! Mármint avatar
Az $onoff paraméterrel hívva az érték beállítható.
Metódus aliasok az érték állítására: ignoreExtensionOn() és ignoreExtensionOff()
- setThumbnailFolder($thumbnailFolder):
Beállítja a thumbnail képek könyvtárát.
- setThumbnailName($pattern):
Beállítja a thumbnail kép nevét. Több fájl esetén hasznos a {name} string
használata, ami a hozzá tartozó eredet nagy kép nevét tartalmazza kiterjesztés
nélkül. Így elé ( vagy mögé ) írható előtag is, hogy ne írja felül az eredeti
képet, ha nem külön mappába töltjük a kis képeket. például: thumb_{name}.
Ami egyébként az alapértelmezett érték is.
- setThumbnailSize($width, $height):
A thumbnail képek maximális szélességét és magasságát állítja be.
- setInputName($name):
A fájl input neve, aminek a fájljait fel szeretnénk tölteni. Például:
$up->setInputName("file[avatar]");
Érvényes a "file[avatar]" és a "file[avatar][]" nevekre is. Automatikusan
érzékeli, hogy tömbként lett-e megadva az inputnév.
- setMaxFileSize($size, $sizetype = Uploader::SIZE_BYTE):
Beállítja a maximális fájlméretet, ami feltölthető. Alapértelmezetten byte-ban
kell a méretet megadni. A második paramétert megadva viszont
( Uploader::SIZE_BYTE vagy Uploader::SIZE_KILOBYTE vagy Uploader::SIZE_MEGABYTE)
megadható, hogy a $size paramétert kilobájtnak, vagy megabájtnak tekintse
- getMaxFileSize($sizetype = Uploader::SIZE_BYTE):
Visszaadja a maximális fájlméretet. Alapértelmezetten bájtban, de a $sizetype
paraméterrel ( Uploader::SIZE_BYTE vagy Uploader::SIZE_KILOBYTE vagy
Uploader::SIZE_MEGABYTE ) módosítható kilobájtra vagy megabájtra.
- addType($type,$subType=null,$extension=null):
Korlátozható a feltölthető fájlok mime típusa. A mime típusok főtípus/altípus
alakúak. Például image/jpeg. A $type paraméterben a főtípust elég megadni. Ha az
altípust is korlátozni szeretnénk, akkor azt a $subType paraméterben kell
megadni. Ha az altípushoz konkrét kiterjesztést is rendelünk, mint például
jpeg típus csak "jpg" lehet, de "jpeg" nem, akkor azt az $extension paraméterben
kell megadni.
- typeExists($type):
Létezik-e a $type főtípus a típuskorlátozások között.
- subTypeExists($type, $subType):
Létezik-e a $type főtípushoz tartozó $subType altípus a típuskorlátozások között.
- isAllowedType($mimetype):
Engedélyezett-e a megadott mimetype típus.
- errorMessages():
Visszaadja a hibaüzenetek tömbjét.
- validate($ignore=array()):
Visszaadja, hogy érvényes-e minden feltöltendő fájl. Az $ignore tömbben
felsorolható, hogy milyen hibaüzeneteket hagyjon figyelmen kívül. Ezek a
következők lehetnek:
Uploader::E_INI_SIZE: A fájl mérete meghaladja a php.ini -ben megengedettet.
Uploader::E_FORM_SIZE: A fájl mérete meghaladja az űrlap MAX_FILE_SIZE nevű inputjában megadottat.
Uploader::E_PARTIAL: A fájl csak részben lett feltöltve.
Uploader::E_NO_FILE: Nem lett fájl kiválasztva.
Uploader::E_NO_TMP_DIR: Nem létezik a feltöltéshez szükséges ideiglenes mappa.
Uploader::E_MAX_SIZE: A fájl mérete meghaladja a setMaxFileSize() metódussal megadottat.
Uploader::E_TYPE: A fájl nem megengedett típusú
Uploader::E_ERROR: Ismeretlen hiba
Uploader::E_CANT_WRITE_FOLDER: A cél mappa nem írható.
Uploader::E_CANT_WRITE_DISK: A lemez nem írható.
- getValueByIndex($index):
A $_FILES tömbnek a name, tmp_name, size, type vagy error indexeiben található
értékeket adja vissza tömbként. Azért van rá szükség, mert attól függően, hogy a
file input neve tömbként van-e megadva, másképp érhetők el ezek az értékek.
Ezzel az elérés módja fix.
- requested():
Visszaadja, hány fájl input lett elküldve a setInputName() metódusban megadott
névhez tartozóan. Ezzel egyszerűen ellenőrizhető, hogy egyáltalán el lett-e
küldve feltöltendő fájl. Hisz ha az inputok száma nem nulla, akkor volt kérelem.
- setFolder($folder):
A feltöltendő fájl(ok) könyvtárának beállítása.
- upload($filenames=null):
A fájlok feltöltése. A $filenames paraméterben megadható a feltöltendő fájlok új
nevei tömbben. Olyan sorrendben, ahogy az űrlapon következnek egymás után.
Vagy az indexet is meg kell adni kézzel. Mert az alapján nevezi át a fájlokat.
Vagy string, ha a felöltő input is csak egy értéket tartalmaz.
Tehát nem [] a vége.
Egyúttal visszaad egy tömböt, aminek egyelőre egyetlen indexe a "filename".
A fájlok új neveit tartalmazza egy tömbben. Akkor érdekes, ha volt már azonos
nevű fájl, de a felülírás nem volt engedélyezve. Ilyenkor egy numerikus
megkülönböztető jelet kapnak a fájl végén. Ha feltöltés után azonnal linkelni is
kell a fájlokat, akkor jó tudni a nevüket is.