[PHP] errormsg "max file size exceeded" onderdrukken

Pagina: 1
Acties:

  • Anders
  • Registratie: December 2000
  • Laatst online: 24-08 18:29
Als ik in PHP een bestand upload dat de opgegeven MAX_FILE_SIZE overschrijdt, krijg ik op een server de melding:

Warning: Max file size exceeded - file [UserImage] not saved in Unknown on line 0

Deze warning wordt bovenaan de pagina geschreven, zelfs voordat ik enige errorhandling kan toepassen in het script.

Het is niet mogelijk om de errorhandling-opties in php.ini aan te passen. Het opschroeven van de MAX-FILE_SIZE, zowel in php.ini als in de source, is wel een mogelijkheid, maar hoe groot je die ook maakt, je hebt altijd kans dat bezoekers een nog groter bestand uploaden, dus de behoefte om de foutmelding af te vangen is daarmee niet opgelost.

Hoe kan ik deze foutmelding ondervangen?

PHP-versie 4.02
Apache-versie 1.3.22

phpinfo geeft:
display_errors On
error_append_string no value
error_log no value
error_prepend_string no value
error_reporting no value
html_errors On
upload_max_filesize 6M

Ik spoor veilig of ik spoor niet.


  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 30-08 21:01
Zeg maar dat ze én moeten upgraden naar 1.3.26 en PHP naar 4.2.3. Maar goed, dat is niet de reden dat het niet werkt. Je moet het overigens wel aan kunnen passen in php.ini.

Gewoon een @ voor je copy(?) functie zetten. Dan doe je dus zoiets als:
PHP:
1
2
3
if (@copy($from,$to) == 0) {
     echo "Sorry, je bestand is te groot, of is niet te lezen vanaf je schijf...";
}


Zo zal copy geen error geven als er een error zou zijn.

[ Voor 0% gewijzigd door zeroxcool op 08-10-2002 16:02 . Reden: argh... ]

zeroxcool.net - curity.eu


  • Anders
  • Registratie: December 2000
  • Laatst online: 24-08 18:29
Ja, de errorhandling-opties zijn wel aan te passen in php.ini maar ik wil de error_handling niet over de hele server wijzigen voor 1 pagina (zal ook niet toegestaan worden door anderen).

Helaas kan ik geen @ gebruiken want de error komt tevoorschijn nadat ik een formulier heb verzonden naar een pagina, maar voordat ik op die pagina ook maar enige output kan genereren. Het zit er als het ware tussen en ik kan er niet bij.

Mja, ik denk dat ik het maar oplos met een header-redirect.

/Edit: ja gloeiende gloeiende dat gaat natuurlijk niet want er is al output geweest. Nou ja. Javascript dan maar, dat was toch al een voorwaarde voor de site dus dan moet het maar zo.

Ik spoor veilig of ik spoor niet.