<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>