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