8796 sujets

Développement web côté serveur, CMS

Bonsoir !

J'ai un petit problème avec un script d'upload, mais uniquement dans le cas où la taille du fichier dépasse celle des directives post_max_size et upload_max_filesize.

En effet la doc et tous les sites que j'ai consulté prétendent que dans ce cas la valeur $_FILES['name']['error'] doit être à 1, or dans mon cas la page est rechargée sans les données $_POST et $_FILES...

Ce n'est pas non plus un problème de timeout puisque j'ai fixé ma dernière limite à 1Mo ^^

Donc si vous pouviez m'éclairer sur le sujet..!

Le code n'est pas nécessaire puisqu'il s'agît d'un simple upload ; et pour info je bosse avec wamp.
Merci d'avance !
Salut,

cela est dû à la directive post_max_size du php.ini : si cette taille est dépassée $_POST et $_FILES seront vides. Comme mentionné dans le lien tu peux rajouter une variable GET dans l'attribut action de ton formulaire pour le vérifier : if(isset($_GET['test']) && empty($_POST)) fichier trop gros.
Ok merci ça marche nickel ^^

Juste une interrogation ; j'ai testé l'envoi d'un fichier dont la taille était comprise entre upload_max_filesize (supérieure) et post_max_size (inférieure) mais $_POST et $_FILES sont tout autant vides..!

Comment peut-on donc récupérer la valeur UPLOAD_ERR_INI_SIZE dans $_FILES ??
MatTheCat a écrit :
j'ai testé l'envoi d'un fichier dont la taille était comprise entre upload_max_filesize (supérieure) et post_max_size (inférieure) mais $_POST et $_FILES sont tout autant vides..!
Par défaut ces 2 valeurs sont égales et valent 2Mo (cf. le php.ini). Pour le vérifier faire <?php phpinfo(); ?>

MatTheCat a écrit :
Comment peut-on donc récupérer la valeur UPLOAD_ERR_INI_SIZE dans $_FILES ??
Euh... pas compris : UPLOAD_ERR_INI_SIZE est une constante (qui vaut 1) et correspond à la valeur de $_FILE['fichier']['error'] lorsque la taille du fichier dépasse celle autorisée dans le php.ini (upload_max_filesize).