Fájl feltöltése
2007.03.30. 22:16
Mint leírtam az űrlapok feldolgozása POST-al tutorialban, hogy máshol fogom tárgyalni a fájlok feltöltését, így most ezt leírom.
Fájlok feltöltése, gyorsan és egyszerűen ftp kapcsolat nélkül a PHP-val lehetséges. Nem is kell a turmixba semmi más, csak egy egyszerű űrlap és egy kis PHP kód, no meg az ész sem árt.
Fájlok feltöltésére sokféle függvény létezik ,de a leghasználtabb és szerintem a legjobb a move_uploaded_file() függvény. Ennek két paramétere van. Az első honnan másoljuk, és a második pedig, hogy hova.
Ez így elsőre értethetlennek tűnhet, hogy honnan másoljuk, hisz a gépemről akarom másolni! Hát ez nem egészen így van, ugyanis amikor feltöltjük az adott fájlt, nem oda tölti fel ahova mondanánk nekik hanem egy tmp mappába a serverre, és innen kell ezt átmásolni.
Nos lássunk egy gyors pédát is:
1
2
3
4
5
6
7
8
9
10
|
if ($_REQUEST['page']=="kuld") {
//ha elküldtük az űrlapot
if ( $HTTP_POST_FILES["file"]["type"] == "application/zip" || $HTTP_POST_FILES["file"]["type"] == "application/rar" ) {
//ezzel tudjuk ellenőrizni milyen típusú fájlt lehet feltölteni
move_uploaded_file($_FILES["file"]["tmp_name"],"mappanev/".$_FILES["file"]["name"]);
//ez maga a feltöltés
} else print "Nem megfelelő a fájl típusa";
}
|
1
2
3
4
|
<form name="Formular" method="POST" action="feltolto.php?page=kuld" enctype='multipart/form-data'>
Fájl:<br><input type="file" name="file">
<input type="submit" value="Mehet">
</form>
|
Elsőkörben ellenőriztük hogy a fájl típusa megengedett-e, ugyanis ha valaki php fájlt feltölt, akkor könnyedén feltörheti az oldalt, ezért nem árt ennek az ellenőrzése. A fájltípusokról itt van egy lista: http://kb.mediatemple.net/article.php?id=151
A $_FILES tömbben található a feltöltött fájlnak az adatai.
1
|
enctype='multipart/form-data'
|
Ez mondja meg a formnak hogy itt fájlfeltöltésről lesz szó, így enélkül nem is működne a programunk, ezért kell ide.
Szerintem ennyi elég is, a lényeg megtalálható ebben, a fájlfeltöltés.