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.


Zobrazeno 21 zpráv z 21.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
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.