Formulaire, upload, php5

Eléphanteau du PHP | 45 Messages

18 févr. 2010, 01:37

Bonjour,

Il y a quelque chose qui me dépasse, je veux faire quelque chose de vraiment basique.

Formulaire :
	<form name="envoyer" action="" method="post" enctype="multipart/form-data" target="_self" onsubmit="" >
		<fieldset>
		<legend>Fichier</legend>
			<input type="hidden" name="MAX_FILE_SIZE" value="<?php print( return_bytes() ); ?>" />
			<input name="fichier" type="file" /> Taille max du fichier <?php print( ini_get('upload_max_filesize') ); ?>o
			<input name="soumis" type="hidden" value="1" />
			<input name="go" type="submit" value="Envoyer" />
		</fieldset>
	</form>
Rien de formidable
N.B. : L'erreur ne provient pas de la fonction return_bytes() me renvoit bien 2097152 o pour un unpload_max_filesize à 2M qui correspnd au php.ini

+

PHP
<?php var_dump($_FILES); ?php>
facile...

+

UPLOAD

J'envoie un fichier de plus de 2097152 o donc plus grand que le upload_max_filesize du php.ini

=

Réponse attendue le tableau $_FILES['fichier']['error'] = 1, Valeur : 1. Le fichier téléchargé excède la taille de upload_max_filesize, configurée dans le php.ini, dixit la doc or Au lieu de cela j'ai dans le dump du tableau
array(0) { }
J'ai vérifié les requetes http POST avec firebug, rien de flagrant. Ma question est : ou est passée mon tableau $_FILES, ne devrait il pas être non null dans ce cas ?

MAJ :

J'ai vérifié également apache_error.log :

J'ai trouvé qq chose d'intéressant.

Code : Tout sélectionner

[error] [client 127.0.0.1] PHP Warning: POST Content-Length of 7327048 bytes exceeds the limit of 2097152 bytes in Unknown on line 0, referer: http://localhost/class.upload/index.php5
Mais, Cette erreur n'est affichée nul part dans mon script lors de l'exécution même avec : error_reporting(E_ALL); .Elle n'est pas présente dans le header http de la réponse à la requête.

Comment faire pour l'intercepter ?

Ça avance mais à petit pas...

Eléphanteau du PHP | 45 Messages

19 févr. 2010, 11:49

Réponse ici.

Le message d'erreur est stocké . Cela ne sert à rien donc de tester le tableau global $_FILES['fichier']['erreur'], peut être préféré parser $php_errormsg. A confirmer