Upload souboru

Kontrola, zda odesílaný dokument je jpeg obrázek: Pro naši proměnnou $soubor je vygenerována i proměnná $soubor_type. Je-li to jpeg, zjistíme vyhodnocením podmínky:

($soubor_type == "image/jpeg")

- nebo, pokud není povoleno register global, podmínkou:

($_FILES["file"]["type"] == "image/jpeg")

Pokud ano, provedeme zbytek skriptu, jinak (po zeleném else) vypíšeme chybovou hlášku:

<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1250">
<title>Odezva formuláře</title>

</head>

<body bgcolor="#FFFFFF">

<p><font size="4"><strong>Odezva formuláře:</strong></font></p>

<?  
if (is_uploaded_file($soubor)): //pokud již byl proveden upload (a zdařil-li se, samozřejmě)
  if ($soubor_type == "image/jpeg"):
  $cesta="data/"; //nami definovaný adresář, kam se budou ukládat obrázky 
    if (move_uploaded_file ($soubor, $cesta.$soubor_name)):
    //presunuti souboru do naseho adresare, // oznámení o úspěšnosti, pokud šlo přejmenovat
     echo "Soubor $soubor_name o velikosti $soubor_size bajtů byl úspěšně nahrán na server"; 

     $src = @imagecreatefromjpeg($cesta.$soubor_name);   //prozatím otvírám přesunutý soubor
           //zde by mělo být ošetření, zda se povedlo otevřít soubor jako obrázek
     $dst = imagecreatetruecolor(640,480);               //požadované rozlišení
           //obrázek je "truecolor" a nebo s barevnou paletou, ale s tím se hůře pracuje
     imagecopyresampled($dst, $src, 0, 0, 0, 0, 640, 480, imagesx($src), imagesy($src));
           //cíl, zdroj, levý horní roh cíle, levý h.r. zdroje, šířka a výška cíle a zdroje
           //      použité funkce imagesx($src), imagesy($src) vrací rozměry obrázku (size x)
     imagejpeg($dst, $cesta."1".$soubor_name,60);        //drobná změna jména - předsazení jedničky
           //vytvoří jpeg ze zadaného truecolor obr.,se zadaným jménem souboru, o kvalitě 60%.
     imagedestroy($dst);           //závěrečný úklid - vlastně by po ukončení php mělo zmizet samo
     imagedestroy($src);

  else:  
    echo "Při nahrávání souboru došlo k chybě!"; //oznámení chyby z posledního "if"
  endif; 
  else:
    echo "Soubor $soubor_name neznámého typu: ".$soubor_type; 
  endif; 
endif;  
// a na závěr - toto php je samo sobě formulářem
//formulář pro upload případného dalšího souboru:
//jazyk php již nebude třeba...
?>         

<hr>
<form action="upload1.php" method="post" enctype="multipart/form-data">
<input name="soubor" type="file">  
<br>  
<input value="Uložit" type="submit"></form>  
<p>&nbsp;</p>
<sub>poslední verze 25.3.2010</sub>
</body>
</html>

Kontrolovat, zda prošla funkce imagecreatefromjpeg, bohužel nemůžeme, program nahlásí chybu a je přerušen dříve, než bychom mohli zkontrolovat úspěšnost.