ugrás a tartalomhoz

Fájl feltöltés maximális méret ellenőrzése

csaba86 · 2010. Ápr. 26. (H), 22.38
Sziasztok!

Egy egyszerű fájlfeltöltő formot készítettem, de egy nagy fájl feltöltésekor ha a php.ini post_max_size értékétől nagyobb, akkor
Warning: POST Content-Length of 298144896 bytes exceeds the limit of 134217728 bytes in Unknown on line 0
hibaüzenetet kapok. Logikus, mert meghaladja a megengedett méretet. Kérdésem az lenne, hogy hogyan lehet az a hibaüzenetet valamilyen módon eltüntetni. Tudom ki lehet kapcsolni a warning-okat, de ezt nem szeretném. Olyan megoldást szeretnék, amit bármikor használhatok, még akkor is, ha pl a warningok letiltását nem engedi a szolgáltató, meg a post_max_size növelését is. (Ha növelem még attól ugyan úgy lehet a warning). .htaccess-es megoldásokra is találtam példákat.

Próbáltam pl ob_start-al eltüntetni, de nem sikerült, gondolom az interpreter "dobja" a warningot.

Kérdésem az lenne, hogy nem vagyok tapasztalt még annyira, ellehet-e ezt a kiveltelt kapni valahogy? Ha nem akkor maradok a többi módszernél, azok is megfelelnek, de ha lehet erre jobb megoldás akkor annak nagyon örülnék.
 
1

POST méret

janoszen · 2010. Ápr. 27. (K), 05.38
Egy részről sürgősen szólj a szolgáltatódnak hogy a display_errorst kapcsolja ki mert az egy csomó information leaknek lehet a forrása (avagy megtudhatnak olyasmit a siteodról amit nem kéne). A feltöltéssel kapcsolatos ilyen hibát TALÁN a $_FILES['userfile']['error'] változóban találod meg. Ha nem, akkor a beküldött fejlécekből. Egyébként meg a form oldalon állítsd be a MAX_FILE_SIZE hidden mezőt és akkor mindjárt a kliens oldalon megy a hibaüzenet, nem kell megvárni a feltöltést.
2

Egyenlőre még xampp-al

csaba86 · 2010. Ápr. 27. (K), 06.50
Egyenlőre még xampp-al próbáltam ki, nincs fent rendes szerveres. Szándékosan nem kapcsoltam ki a display_errorst mert szeretnék minden lehetséges hibát eltüntetni úgy hogy tudok is róla, szóval ellenőrzéssel.

A $_FILES tömbböt teljesen kiírattam, üres. A $_POST is. MAX_FILE_SIZE-t pedig a tesztelt böngészők le se bagózzák (Firefox, Opera).

Itt a teszt formom, hátha elnézek valamit.

<form enctype="multipart/form-data" action="index.php" method="POST" >
   <input type="hidden" name="MAX_FILE_SIZE" value="52428800">
   File: <input type="file" name="file">
   <input type="submit" name="submit" value="Küld!">
</form>
A beküldött fejléceket hogy figyelhetem? Mit figyeljek?
3

Content-length

janoszen · 2010. Ápr. 27. (K), 11.18
Nézd meg, ki tudod-e valahogy olvasni a content-length fejlécet.
4

Ha a

csaba86 · 2010. Ápr. 27. (K), 11.58
Ha a $_SERVER['content-length']-re gondolsz, azt kitudom. Utána nem tudom mi lenne a logikus megoldás, mert ez előtt jelenik a warning. Ha a script legelején ellenőrzöm akkor is, így headerrel sem tudom átküldeni másik oldalra. Szerintem marad a többi megoldás, csak mégis fura hogy ilyet nem lehet megoldani php-ban.
6

display_errors

janoszen · 2010. Ápr. 28. (Sze), 09.55
display_errors off nem segít?
7

Megfelelne ez is, de olyan

csaba86 · 2010. Ápr. 28. (Sze), 15.24
Megfelelne ez is, de olyan megoldást kerestem, ami akkor is működne, ha nem lehet php.ini-t módosítani sehogy sem. Elnézést hogy ilyen kukacoskodó vagyok, nem várom el a segítséget, de valaki hátha tud segíteni. Sokmindent kipróbáltam egyik se lett olyan megoldás amit szerettem volna.

Egy olyan "form.php" megírásán dolgozok ami ezeket a "hibákat" is kiszűrni. Saját részre lesz, így maradhat a pár kerülőút.

Köszönöm azoknak akik válaszoltak!
8

.htaccess

janoszen · 2010. Ápr. 28. (Sze), 21.04
.htaccess-be php_value direktíva? Azért nehogy ennyi support se legyen a szolgáltató részéről.
9

Köszönöm ezek jók lesznek,

csaba86 · 2010. Ápr. 28. (Sze), 23.54
Köszönöm ezek jók lesznek, amiket ajánlottatok. Meggyőztél, felesleges mindent megoldani php-ban, valamelyik úgyis fog működni, mert tényleg ennyi elvárható.
5

nincs rá mód

ene · 2010. Ápr. 27. (K), 22.46
tudomásom szerint nincs rá mód, hogy csak ezt az üzenetet rejtsd el