Autor Zpráva
Mufna
Profil
Zdravím Vás. Mám problém s kontrolou velikosti uploadovaného souboru. Resp. problém je ten, že při překročení velikosti (soubor je již vybrán a zanesen do formuláře) vyběhne hláška "Nebylo vybráno nic k nahrání" (v kódu je to case "U7") místo toho, aby mi to hlásilo "Soubor překročil atd." - case "U3". Ostatní hlášky fungují správně, jen tahle prostě ne. Můžete se prosím někdo na to mrknout. Díky !

$upload_max_size je správně definována - $upload_max_size=524288; - v config.php a když ji zkusím vypsat echem přímo ve stránce s daným skriptem, je to tak jak má být. Zkoušel jsem nahrát soubor o velikosti cca. 2MB


require("admin_html.php");
require_once("conf/config.php");

if (isset($_POST["upload"])) {

  if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {

    if ($_FILES['userfile']['type']=="application/octet-stream") {
	Header("Location: ".$_POST["return_page"]."?msg=U6");
	exit;
    }

    if ($_FILES['userfile']['size']>$upload_max_size) {
        Header("Location: ".$_POST["return_page"]."?msg=U3");
        exit;
    }

    if (!eregi('^[A-Za-z0-9_-]+\.jpe?g$',$_FILES['userfile']['name'])) {
        Header("Location: ".$_POST["return_page"]."?msg=U4");
        exit;
    }

--- tady je kód pro vkládání

  } else if ($_FILES['userfile']['size']==0) {
        Header("Location: ".$_POST["return_page"]."?msg=U7");
        exit;
  } else {
       Header("Location: ".$_POST["return_page"]."?msg=U2");
       exit;
  }
}

a pak je přepínání

if (isset($_GET["msg"])) {
    switch ($_GET["msg"]) {
      case "U1":echo '<div style="color: #008000;padding-bottom: 8px;">Fotografie byla úpěšně uložena!</div>'; break;
      case "U2":echo '<div style="color: #800000;padding-bottom: 8px;">Fotografii se nepořadilo nahrát na server!<br />Zřejmě nejde o korektní upload</div>'; break;
      case "U3":echo '<div style="color: #800000;padding-bottom: 8px;">Soubor překročil maximální povolenou velikost ('.round($upload_max_size/1024).' kB)!</div>'; break;
      case "U4":echo '<div style="color: #800000;padding-bottom: 8px;">Soubor musĂ­ bĂ˝t obrázek typu JPEG a název smĂ­ obsahovat pouze pĂ­smena anglickĂ&copy; abecedy, ÄŤĂ­slice, pomlÄŤky a podtržítka!</div>'; break;
      case "U5":echo '<div style="color: #800000;padding-bottom: 8px;">Soubor tohoto jmĂ&copy;na jiĹľ existuje!</div>'; break;
      case "U6":echo '<div style="color: #800000;padding-bottom: 8px;">Soubory s příponou PHP jsou zakázany!</div>'; break;
      case "U7":echo '<div style="color: #800000;padding-bottom: 8px;">Nebylo vybráno nic k nahrání!</div>'; break;
      case "1":echo '<div style="color: #008000;padding-bottom: 8px;">ZvolenĂ&copy; fotografie byly vymazány!</div>'; break;
      case "2":echo '<div style="color: #800000;padding-bottom: 8px;">Nebylo vybráno nic ke smazání!</div>'; break;
    }
  }
DJ Miky
Profil
Je to proto, že soubory, které překračují onu velikost, se do skriptu vůbec nedostanou, tzn. jako by se nenahrály.
Mufna
Profil
DJ Miky

Hm, tak díky, zkusím tu hlášku vyřešit jinak

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: