Fájlfeltöltésrõl

Szerző: Bonjasky

Már szövegekkel tudunk muveleteket végezni, fájlokat tudunk létrehozni, de még felhasználótól fájlokat nem tudunk bekérni. Eddig a leckéig.

PHP-vel képesek leszünk fájlokat feltölteni, és átmozgatni egy mappába. De fontos tudnivaló, hogy ami felhasználói oldalról jön, az lehet féreg, vírus, kártékony script, amivel könnyen feltörhetové válhat a weblapunk.

Így érdemes a biztonsági kérdésekkel fórumra menni, ha nem vagyunk biztosak benne. A PHP megírása elott tisztázni kell néhány alap dolgot, amit HTML urlapokkal csinálni hogy fájlfeltöltohöz jussunk. Példa egyszeru fájlfeltöltohöz:

 

<form enctype="multipart/form-data" action="uploader.php" method="POST">

<input type="hidden" name="MAX_FILE_SIZE" value="100000" /> Válassz egy fájlt: <input name="uploadedfile" type="file" />

<input type="submit" value="Feltöltés" />

</form>
Ezt feltöltve a szerverre máris bekéri a böngészonk a fájlt.

Az urlapunk action részébe adjuk meg hová küldje el a bevitelimezoket és a csatolmányokat.

uploaded.php fájlba tehetjük a feldolgozó programot.

Néhány rész ami magyarázatra szorulhat:

* enctype="multipart/form-data"

- fontos megadni hogy az urlap ne csak szöveges adatokat küldjön tovább.

 * method="POST" 

- A fájlon kívül minden változót POST móddal küldi tovább

* input type="hidden" name="MA...

Ezzel megadjuk, hogy mekkora fájlt tölthetünk fel maximum, A példában 100000 bájtot, azaz 100Kbytot adtunk meg, ez átlagos fájlméret webes környezetben.

* input name="uploadedfile"

- uploadedfile lesz a tömbön belüli neve a fájlnak, amibol további információt nyerhetünk 

 Mi kerül a uploader.php fájlba?

Amikorra lefut a fájlunk, a fájlt a szerver feltölti egy átmeneti mappába, sok hiedelemmel ellentétben már feltöltöttük a fájlt.

Hogyha nem használjuk fel ezt az átmeneti fájlt, automatikusan törlodik, nekünk ezzel nincs több dolgunk.

Beszélni kell még a $_FILES tömbrol is, PHP -vel ebbol a tömbbol kapjuk vissza mi az átmeneti fájlunk fájlneve, és egyéb infókat kapunk vissza, pl típusát, eredeti fájlnevét, méretét.

 -Miket tartalmaz pontosan a $_FILES tömb?

$_FILES['uploadedfile']['name'] 

- megadja a pontos fájlnevet amivel a fájlt feltöltöttük.

$_FILES['uploadedfile']['tmp_name']

- a szerveren elhelyezkedo átmeneti mappában található egyedi-átmeneti fájlnevét adja vissza. Kezdhetünk akkor egy programot írni, ami ténylegesen kimozgatja a feltöltött fájlt az átmeneti helyérol.

 

2020-01-11 16:59:30

Értékelés 0.0 /5