Autor | Zpráva | ||
---|---|---|---|
nestorko Profil * |
#1 · Zasláno: 11. 5. 2009, 10:59:53
Caute, chalani preco mi toto nefunguje? Kód ma problem rozoznat typ nahravaneho suboru. kto mi pls pomôže?
<?php if ($_SERVER['REQUEST_METHOD'] == "POST") { switch ($_POST['mojupload']) { case "1": $uploaddir = "smokovec"; break; case "2": $uploaddir = "strbskepleso"; break; case "3": $uploaddir = "lomnica"; break; default : die("Nesprávne vybratá zložka"); break; } $pext = getFileExtension($imgfile_name); $pext = strtolower($pext); if (($pext != "JPG") && ($pext != "JPEG") && ($pext != "jpg") && ($pext != "jpeg")) { print "<h1>Chyba</h1> Mozete nahravat len súbory s koncovkami: $pext</p>\n"; unlink($imgfile); exit(); } $imgsize = GetImageSize($imgfile); if (($imgsize[0] > 250) || ($imgsize[1] > 200)) { $tmpimg = tempnam("/tmp", "MKUP"); system("djpeg $imgfile >$tmpimg"); system("pnmscale -xy 250 200 $tmpimg | cjpeg -smoo 10 -qual 50 >$imgfile"); unlink($tmpimg); } $final_filename = str_replace(" ", "_", $imgfile_name); $newfile = $uploaddir . "/$final_filename"; if (is_uploaded_file($imgfile)) { if (!copy($imgfile,"$newfile")) { print "Chyba nahravaneho suboru."; exit(); } } unlink($imgfile); print("<img src=\"$final_filename\">"); } ?> <?php function getFileExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } ?> <script type="text/javascript" language="JavaScript"> <!-- function prezrietBoxi(form) { if ( form.box_1.prezri == false && form.box_2.prezri == false && form.box_3.prezri == false) { alert ('Prosím vyberte si zložku, do ktorej chcete súbor nahrať!'); return false; } else { return true; } } //--> </script> <form name="upload" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" onsubmit="return prezrietBoxi(this);"> <input type="hidden" name="MAX_FILE_SIZE" value="50000" /> <input type="radio" id="box_1" name="mojupload" value="1" /> Starý Smokovec <input type="radio" id="box_2" name="mojupload" value="2" /> Štrbské Pleso <input type="radio" id="box_3" name="mojupload" value="3" /> Tatranská Lomnica<br /> <input name="imgfile" type="file" id="file" size="47" /> <br /><br /> <input type="submit" name="submit" value="Upload" /> <br /><br /> </form> |
||
blaaablaaa Profil |
#2 · Zasláno: 11. 5. 2009, 11:13:20
odkud beres promennou $imgfile_name?
|
||
AM_ Profil |
#3 · Zasláno: 11. 5. 2009, 13:15:33
pasáž na řádku 14 máš trochu divně:
$pext = strtolower($pext); if(!in_array($pext, array('jpg', 'jpeg', 'jpe'))){ echo 'Muzete nahravat pouze jpg, jpeg, jpe'; } jelikož teď to po strtolower zbytečně porovnáváš s uppercase variantami a pokud porovnání selže, vypíšeš "můžete nahrát pouze <to co ste nahráli ale nešlo to, je to v $pext>" což je nesmysl. Zkus být trochu konkrétnější v popisu chyby, která část kódu hází jakou chybu, "kód má problém s rozpoznáním typu" není moc hodnotný popis problému |
||
nestorko Profil * |
#4 · Zasláno: 11. 5. 2009, 15:11:36
Kod sa zastavi na: riadok 19
unlink($imgfile); exit(); |
||
crook Profil * |
#5 · Zasláno: 12. 5. 2009, 08:22:30
Napadli me dve veci.
1. Pokud otviras soubor a on tam neni nezastavi se chyba u open ale az u exit nebo die nebo close..Takze se pridavam k blaa blaa a podivej se znova na $imgfile. 2. Muzes zkusit die ci close misto exit. Nezda se mi to OK. |
||
Časová prodleva: 16 let
|
0