Starije verzije PHP-a nemaju funkcije koje direktno rukuju upload-om fajlova, ali je uz pomoć drugih ugrađenih funkcija, ipak moguća ova operacija
U novijim verzijama PHP-a (počeviši od verzije4) postoje načini i funkcije za upravljanjem upload-om fajlova, korišćenjem specijalnog ugrađenog (sistemskog) niza $HTTP_POST_FILES, ali u ovom tekstu ćemo se pozabaviti kako to isto uraditi u starijim verzijama PHP-a.
Pretpostavimo da smo za upload fajlova pripremili HTML formular sličan ovome:
<form method=”post” enctype=”multipart/form-data” action=”script.php”>
<INPUT TYPE=”hidden” name=”MAX_FILE_SIZE” value=”1000″>
<input type=”file” name=”userfile”>
<input type=”submit”>
</form>
Skriveno polje MAX_FILE_SIZE (obavezno se ubacuje pre taga <input type=file>) se koristi za određivanje maksimalne veličine fajla koji se uload-uje. Određivanje ovog parametra, browser neće odaslati fajl serveru ukoliko je veličina veća nego što je određena ovim parametrom. Kada je forma odaslata PHP kreira i popunjava specijalne varijable koje su u vezi sa transfer podacima. Nema potrebe za ručnim parsiranjem jednog takvog HTTP zahteva, PHP će sveo svemu pobrinuti, te će obezbediti upload varijable. Zapazite da se nazivi varijabli sastoje od dela, prvi deo je isti kao naziv ulaznog polja sa HTML formulara
PHP varijable
Pretposatvimo da imamo kôd sličan ovome:
<input type=”file” name=”userfile”>
, u vašem PHP skriptu će automatski biti kreirane sledeće varijable:
* $userfile - ovo je naziv privremenog fajla na serveru (kreira se nakon upload-a). Ovu varijablu možete koristiti za kopiranje fajla na bilo koju drugu loakciju.
* $userfile_name - naziv fajla koju je korisnik locirao na klijentskoj mašini i odredio za upload.
* $userfile_size - veličina upload-ovanog fajla u bajtovima.
* $userfile_type - MIME tip upload-ovanog fajla. Na primer: “image/gif”.
Takođe, tu je i ugrađena funkcija koja proverava varijablu privremenog naziva fajla. Funkcija is_uploaded_file($userfile), vraća True ukoliko $userfile sadrži naziv privremeno upload-ovanog fajla, a u suprotnom False.
Sintaksa funkcije koja služi za prebacivanje privremenog fajla, na serverskoj mašini (naravno, u skladu sa pripadajućim dozvolama) je sledeća:
move_uploaded_file($userfile, “/lokacija/fajl.nesto”)
Na kraju, evo i PHP kôda koji ćemo upotrebiti za smeštanje upload-ovanog fajla na određenu lokaciju:
<?
if (is_uploaded_file($userfile)) {
move_uploaded_file($userfile, “/lokacija/fajl.new”);
}
?>
Isto možemo da odradimo i sa funkcijom Open:
<?
if (is_uploaded_file($userfile)) {
copy($userfile, “/place/file.new”);
}
?>
Pripremio: Milenko Kusurović
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272 |
||