Centar za edukaciju-BiH



#1 17.09.2010 13:45
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


Predmet:Upload fajlova
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Å¡tenjem 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 :

PreuzmiIzvorni kôd (HTML):
  1. <form method="post" enctype="multipart/form-data" action="script.php">
  2. <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1200">
  3. <input type="file" name="userfile">
  4. <input type="submit">
  5. </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 zahtjeva, PHP će sveo svemu pobrinuti, te će obezbijediti upload varijable. Zapazite da se nazivi varijabli sastoje od dijela, prvi dio je isti kao naziv ulaznog polja sa HTML formulara

PHP varijable

Pretposatvimo da imamo kod 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.exstenzija")
Na kraju, evo i PHP koda koji ćemo upotrebiti za smijeÅ¡tanje upload-ovanog fajla na određenu lokaciju:
PreuzmiIzvorni kôd (PHP):
  1. <?
  2. if (is_uploaded_file($userfile)) {
  3. move_uploaded_file($userfile, "/lokacija/fajl.new");
  4. }
  5. ?>
Isto možemo da odradimo i sa funkcijom Open:

PreuzmiIzvorni kôd (PHP):
  1. <?
  2. if (is_uploaded_file($userfile)) {
  3. copy($userfile, "/place/file.new");
  4. }
  5. ?>

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

Stranice (1):1


Sva vremena su GMT +01:00. Trenutno vrijeme: 3: 51 am.