Autor Zpráva
nestorko
Profil *
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&nbsp;&nbsp;&nbsp;<input type="radio" id="box_2" name="mojupload" value="2" /> Štrbské Pleso&nbsp;&nbsp;&nbsp;<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
odkud beres promennou $imgfile_name?
AM_
Profil
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 *
Kod sa zastavi na: riadok 19
unlink($imgfile);
        exit();
crook
Profil *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: