U ovom tutorijalu ćemo naučiti kako pomoću PHP „uploadati“ datoteke na vaš server. Omogućavanje uploada na vaš server je rizičan posao jer ste s time omogućili da se „zarazite“ ili prenesete „zarazu“ gotovo svakog ikad napisanog crva/virusa.

Prvi korak je pravljenje HTML forme.
Kod:


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

<input type="hidden" name="MAX_velicina_datoteke" value="100000" />

Odaberite datoteku za upload:

<input name="uploadedfile" type="file" /><br />

<input type="submit" value="Upload" />
</form>



Objašnjenja:

enctype="multipart/form-data" -važno za PHP datoteku koju ćemo stvoriti.
action="dizanje.php" - ime PHP datoteke koju ćemo stvoriti
method="POST" - ovime govorimo Internet pregledniku da ćemo poslati informacije na server koristeći POST.
input type="hidden" name=" MAX_velicina_datoteke" - s ovime ograničavamo maksimalnu veličinu datoteke u bytovima.
input name="uploadedfile" - uploadedfile je način na koji ćemo naći datoteku u našoj PHP skripti.

Spremite ovu formu u datoteku dizanje.html.


Sada ćemo napraviti PHP skriptu koja će upravljati uploadima. Na način da će ih primiti ili odbiti.

Dizanje.php

Kada je datoteka dizanje.php izvršena, uploadana datoteka postoji u privremenom prostoru na serveru, i ako je ne maknemo datoteka će biti uništena. Uploadanu datoteku ćemo prebaciti sa funkcijom $_FILES.
funkcija $_FILES sprema sve informacije o datotekama. Ovoj funkciji moramo dati dva elementa:
uploadedfile - uploadedfile sa ovim ćemo reći $_FILES s kojom ćemo se datotekom igrati.
$_FILES['uploadedfile']['name'] - name sadrži originalni put do datoteke.
$_FILES['uploadedfile']['tmp_name'] - tmp_name sadrži put do privremenih datoteka koje su na serveru.
Kod:


// mjesto gdje ce datoteka biti spremljena
$target_path = "uploadi/";

/* Dodaje originalno ime datoteci u put do datoteke "uploadi/imedatoteke.ekstenzija" */
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

// sa ovime ćemo doći do privremene datoteke.
$_FILES['uploadedfile']['tmp_name'];



Važno: morat ćete stvoriti direktorij u direktoriju gdje se dizanje.php nalazi i nazvati ga „uploadi“ jer ćemo tamo spremati sve datoteke.

Sve što sada moramo napraviti je pozvati move_uploaded_file funkciju i PHP će napraviti svoje. Ova funkcija mora znati sljedeće:
-put do privremene datoteke
-put do gdje će prebaciti privremenu datoteku
Kod:


$target_path = "uploadi/";

$target_path = $target_path . basename(

$_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "Datoteka ". basename(
$_FILES['uploadedfile']['name']). " je uspijesno pohranjena";
} else{
echo "Datoteka se nije mogla pohraniti na server.";
}



VAŽNO!!!
Ova skripta sadrži par linija koda i napravljena je samo za potreba učenja osnova upload funkcije te zbog toga ne preporučamo stavljati ju na web stranicu zato što nije sigurna.