Diskuze: Zjištění velikosti souboru většího než 2MB
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 21 zpráv z 21.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
No, jasně, jenže když je ten soubor větší než 2 MB (nebo jiná hodnota, kterou si nastavím v php.ini), tak to vypíše chybovou hlášku..
Zde to pan Vrána řeší poněkud zajímavě:
http://php.vrana.cz/…zivatele.php
Pořád to píše třeba: "Warning: POST Content-Length of 6403175 bytes exceeds the limit of 5242880 bytes in Unknown on line 0"
nemůže být chyba třeba v htaccess?
Podívej se na direktivy upload_max_filesize a post_max_size
Potřeboval bych udělat, aby k týhle hlášce vůbec nedošlo. Dejme tomu, že limit mám nastavený na 5MB a v případě, že budu chtít nahrát soubor o velikosti 6MB vypíšu chybovou hlášku, která bude mít nějaký tvar, který budu chtít já.
Ak nastavíš podmienku ak je súbor väčší ako 5MB tak ... To by malo
fungovať alebo skús napísať priamo na čo to potrebuješ a skúsime
vymyslieť nejake vhodné riešenie
Nastavil bych direktivy upload_max_filesize a post_max_size dostatečně velké a poté použil něco takového:
if(isset($_FILES['obrazek']) {
if($_FILES['obrazek']['size'] > 10485760) { //10 MB
// obrázek je větší jak 10MB
} else {
// obrázek je menší než 10MB
}
}
Vyřešil jsem to takto:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if(!isset($_FILES['obrazek']['size'])) {
echo("<b>Soubor je příliš velký</b> <br />");
echo("Maximální velikost: " . ini_get('upload_max_filesize'));
}
else {
echo ("ok");
}
}
Ale stejně, i když udělám tyhle podmínky, tak mi vyskočí hláška "Warning: POST Content-Length of 6403175 bytes exceeds the limit of 5242880 bytes in Unknown on line 0". Nechci tyto hlášky vypínat, ale předejít jim.
Tak překročíš povolený limit maximálního množství dat odesílaného
metodou POST.
Myslím si, že v php.ini to bude post_max_size, zvětši u
něj hodnotu na vyšší.
Ale takhle to nejde do někonečna.. Vždycky může existovat soubor větší než můj limit.
Tak dej limit třeba na bžilion G nebo vypni hlášky.
V provozu stejně máš mít hlášky vypnuté a dělal popřípadě log na
bezpečné místo, měj je zapnuté pouze při testování aplikace..
Vypnutí hlášek jsem bral jako poslední možnost, jinak všechno funguje, jak má..
To je dobře, avšak pokud to máš už v ostrém provozu kam chodí například lidi, tak kvůli bezpečnosti je musíš vypnout. Z logu popřípadě zjistíš kde se stala chyba a hlášky nemusíš mít zapnuté.
Tak si tu kontrolu prováděj ještě před odesláním formuláře ve chvíli, kdy si uživatel ten soubor vybere...
Javascriptem, dvě vteřiny googlení a najdeš kompletní řešení, tak těžký to zase není, napsat příspěvek ti trvalo déle.
Ten může být vypnutý, ne?? (JS moc nerozumím, kdyžtak mě omluv)
Nějakým způsobem umožňuješ uživateli přiložit soubor, tak při té příležitosti ho můžeš hned zkontrolovat...
Zobrazeno 21 zpráv z 21.