A PHP alkalmas file feltöltést fogadni bármilyen RFC-1867 kompatibilis böngészőtől (mint a Netscape Navigator 3 vagy későbbi és a Microsoft Internet Explorer 3 Microsoft javítással, vagy későbbi IE javítás nélkül). Ez a szolgáltatás egyaránt lehetővé teszi a látogatónak szöveges és bináris file-ok feltöltését. A PHP azonosítási és file-kezelési képességeivel teljes felügyeleted van afelett, hogy ki tölthet fel file-t, és mi történik a feltöltött file-okkal.
Érdemes megemlíteni, hogy a PHP támogatja a PUT metódust is, amit a Netscape Composer és a W3C Amaya kliensek használnak. Lásd a PUT metódusú feltöltések részt.
A file feltöltési lehetőség egy speciálisan kiképzett formmal biztosítható:
Példa 18-1. File Upload Form
|
$userfile - Az ideiglenes file elérési útja, ahol a feltöltött file tárolásra került a szerveren.
$userfile_name - Az eredeti filenév a kliens gépen.
$userfile_size - A feltöltött file mérete, byte-ban megadva.
$userfile_type - A file MIME típusa, ha a böngésző megadta ezt az információt. Például egy gif kép esetében: "image/gif".
A file-ok alapbeállításban a szerver szokásos ideiglenes könyvtárában (temp) tárolódnak. Ez megváltoztatható a TMPDIR környezeti változó átállításával. Ha a putenv() függvénnyel próbálod átállítani ezt az értéket, nem fogsz célhoz érni!
A PHP script, ami megkapja a feltöltött file-t, gondoskodik arról is, hogy a kívánt műveleteket elvégezze a file-al. Például törölheti a file-t, ha az túl nagy, vagy túl kicsi, figyelembe véve a $..._size változót, vagy meghatározhatja a $..._type alapján, hogy ez a file megfelel-e egy meghatározott file-típusnak, és ha nem, törölheti. Bármi is a cél a feltöltött file-al, a PHP script-nek kell gondoskodnia arról, hogy elmozgassa egy biztonságos helyre, vagy törölje az ideiglenes könyvtárból az adott file-t.
A file törlésre kerül az ideiglenes könyvtárból a kérés végrehajtásának végeztével, ha nem mozgatod el, vagy nem nevezed át.