<html>
<head>
<title>Pildi saatmine</title>
</head>
<body>

<?php

// Vajalik on, et serveril oleks kirjutamisõigus kataloogi, kuhu failid salvestatakse. tavaliselt pole sellega probleemi, aga mõne serveri puhul võib olla vajalik kataloogi õiguste muutmine

// Vormis on kaks inputit. Ühe nimi on image ja teise nimi on name. Vormi on näha php koodist all pool.
// input image on tüüpi "file" ja temaga saadetakse üles üks kasutaja poolt valitud fail
// input name täitmine on valikulin. Kui see täidetakse ära, siis salvestatakse saadetud fail siin määratud nimega. Kui sellele väljale midagi ei kirjutata, kasutatakse faili originaalset nime (nii nagu kasutaja kõvakettal)

// See on siis ühtlasi nii kontroll kui ka mugandus. Kui kasutaja saatis mõne faili, siis on muutujal $_FILES['image'] väärtus olemas ja järgnev kood käivitatakse. Kui väärtust pole, kasutaja faili ei saatnud, pole ka selle bloki käivitamisel mõtet.
if($image $_FILES['image']) {
    
// See on siis lühikonstruktsioon if-then-else. if(asi enne küsimärki) then (asi enne koolonit, peale küsimärki) else (asi peale koolonit). kontrollib, kas kasutaja soovis saadetud faili nime serveri peal muuta.
    
$name $_POST['name'] ? $_POST['name'] : $image['name'];
    
// kui sa regulaaravaldisi ei mõista, siis see on vist suht lootusetu koht. lühidalt, ta salvestab $matches[0] sisse salvestatava faili laiendi.
    
preg_match('/\.[^\.]*$/'$name$matches);
    
// võrdlemise mugavuse huvides teeme võtame leitud laiendi ka väikeste tähtedega.
    
$ext strtolower($matches[0]);

    
// siin kontrollime, et saadetud fail oleks pilt. ma ei taha, et keegi saadaks serverile oma .php faili ja nii kogu masina üle võimust võtaks.
    
if(in_array($ext, array('.jpg''.png''.gif'))) {
        
// see on siis php4 maagia, mis kopeerib faili ajutisest asukohast (kuhu server saadetud failid esialgu salvestab) sinna, kuhu meil tarvis on. antud juhul blogi juures olevasse piltide kataloogi.
        
move_uploaded_file($image['tmp_name'], '/path/to/whereever' $name);

        
// rõõmusõnum.
        
echo "Pilt üles laetud. Linkida saab teda <a href='http://windowlicker.dyn.ee/merka/pildid/$name'>nii</a>.<br>";
    }
    else {
        
// kahjurõõm
        
echo "Siit saab saata vaid pilte (faililaiend peab olema jpg, png või gif).<br>";
    }
}

?>

<form method="post" action="upload.php" enctype="multipart/form-data">
<table>
<tr><td>Vali pilt:<td><input type="file" name="image">
<tr><td>Uus nimi:<td><input type="text" name="name">
<tr><td colspan=2><input type="submit" value="saada">
</table>
</form>
Jäta uus nimi tühjaks, kui nime muuta ei taha.
</body>
</html>