ugrás a tartalomhoz

Fájl feltöltés a szerverre - de hogyan

Velias9 · 2008. Jan. 15. (K), 16.24
Sziasztok!

A kérdésem az lenne, hogy hogyan tudok egy fájt HTML űrlapon és PHP-n keresztül feltölteni az egyik honlapom könyvtárába a szerveren. Azért kérdezem, hogy nem kell-e valahogy bizonygatni a szervernek, hogy jogosult vagyok a könyvtárba írásra és ha kell, akkor ezt hogyan tegyem?

Előre is köszi mindenkinek!
 
1

Konfiguráció-függő

vbence · 2008. Jan. 15. (K), 16.40
A PHP szkriptek vagy a feltöltő jogaival futnak (setuid mód), ekkor ugyanazokkal a hozzáférési jogokkal dolgozik - akár magát is letörölheti vagy (az általánosabb eset), hogy minden user a webszerver jogosultságával futtatja a szkripteket (www, www-data, apache vagy hasonló nevű user). Ilyenkor meg kell adnod a "write by others" jogot a feltöltő könyvtárra, hogy az apache user is írhassa.
2

Címzés

Velias9 · 2008. Jan. 16. (Sze), 16.18
Ha a weblapon címe "www.valami.hu" és egy "upload" nevű könyvtárba szeretnék másolni egy képet, akkor a kimeneti kép nevét (a scriptben) "www.valami.hu/upload/kép_név.kiterjesztés" szintaxis alapján kell megadni?
3

Nem, lokálban

vbence · 2008. Jan. 16. (Sze), 16.46
Az elérési utakat vagy az éppen futatott php könyvtárától adod meg: tehát ha a /feltolt.php dolgozik, akkor az upload/feltoltottfole.ext fájlra hivatkozik. Az aktuáis könyvtár mindig az, amiben a futtatott PHP fájl található. Használhatod a .. könyvtárnevet, ugyanúgy, ahogy windowsban. Pl:

A www.valami.hu/szkriptek/fltolt.php hiatkozhat ../upload/feltoltottfile.ext -ként a www.valami.hu/upload/feltoltottfile.ext fájlra. A domainnevet általában NEM használhatod, mivel az csak egy logikai hely, a fájlok valójában a szerver fájlrendszerében vannak.

Lehetőség még, ha a szerver abszolút útvonalát használod. Ezt mogmondja a phpinfo() függvény. A $_SERVER["DOCUMENT_ROOT"] (apache esetén) szintén megmondja, hogy a szerver fájlrendszerében hol található a te hostod könyvtára. Egyszerübb esetben: /home/usenev/www vagy hasonló.