Posez votre question Signaler

PHP upload_max_filesize

arnaudligth - Dernière réponse le 1 août 2008 à 00:12
Bonjour,
alors voila, via un formulaire de type multipart/form-data j'envoie un fichier PDF vers mon serveur qui est limité à 2M, je vérifie la taille du PDF envoyé et compare avec la valeur de mon upload_max_filesize que j'ai converti en octet, jusque là pas de problème, enfin plus maintenant...
Le PROBLEME et là je bloque vraiment, c'est que si je prend un fichier de 5 ou 10 Mo, qui dépasse donc mes fameux 2Mo, ma page plante "erreur de chargement de la page" je suis persuadé que ça viens du fait que c'est trop lourd à envoyer, donc ce que je veux c'est pouvoir vérifier la taille avant l'envoi du formulaire quelqu'un à une piste ?
Sinon dans le php.ini quand il y a 2M, c'est bien 2*1024*1024 octet?
Lire la suite 

PHP upload_max_filesize »

20 réponses
Réponse
+0
moins plus
Quand tu envoies le formulaire, tu as ça comme ligne:
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size ?>">

Ben déjà, MAX_FILE_SIZE doit être plus petit en taille que la valeur dans ton php.ini.
Ensuite, il détecte tout seul si un fichier est trop gros et il génère une erreur.

Si tu regardes ici, tu pourras voir comment traiter les erreurs:
http://www.commentcamarche.net/faq/sujet 889 php upload de fichiers

Perso, j'ai un formulaire qui sert à uploader des fichiers (je limite à 1mo). Et j'ai essayé d'envoyé des gros fichiers genre 10mo et ça à marcher sauf qu'il a refusé l'upload car le fichier avait une trop grande taille par rapport à mon MAX_FILE_SIZE.

Utilises-tu cette variable?
X-Fan- 31 juil. 2008 à 17:34
Bien je viens de faire le test et le résultat et le même mais aucun message d'erreur. Cependant, cela ne se produit que si l'image est trop grande par rapport à php.ini. Si j'upload une image de 1.5 mo, elle sera géré par ma variable et le formulaire se rechargera sans problème. Je ne pense pas que tu puisses faire quelque chose contre ça malheureusement. Ce doit être le fonctionnement normal de php.

Aussi, comme je t'ai dit, la variable MAX_FILE_SIZE est un plus car si tu gères 3-4 formulaires qui permettent de l'upload, elle te permet de gérer des tailles différentes pour tous (puisqu'il n'y a qu'un php.ini pour tous, lui ne te permet que de gérer une taille).

Voilà, je ne sais pas s'il y a moyen de contrer le problème. Il faudrait chercher sur Internet.

EDIT: une façon bâtarde de contourner serait d'utiliser des variables de session loool :P
arnaudligth - 31 juil. 2008 à 23:46
Le résultat est le même que quoi ?

La page ne se charge pas ?

Tout se passe bien ?

Le formulaire se recharge sans les variables POST ?

Développe ton idée de contourner le problème avec des variables de session ?



Parce que voila comment marche mon script :

1 - UPLOAD
2 - je fait un filesize($_FILES['mon_upload'][tmp_name]) et je le compare à la taille maxi que j'autorise
3 - si c'est bon je copie vraiment le fichier sur le serveur sinon je dit à l'utilisateur d'envoyer un truc moins lourd
L'avantage c'est que ça permet de mettre plusieurs champs d'upload dans le formulaire, c'est pour ça que je pense que MAX_FILE_SIZE sert à pas grand chose vu que ça limite la taille pour tous les champs.

En tout cas merci de ton aide !
X-Fan- 1 août 2008 à 00:12
La page recharge mais sans les variables $_POST.

Ben pas sûr mais peut-être qu'en récupérant le contenu des champs avec javascript, on pourrait initialisé des variables de SESSION avant l'envoi du formulaire. De sorte qu'au moment de l'envoi, la page va vider tes variables POST à cause justement du problème de la taille (si le fichier est trop grand bien entendu). Mais comme tu auras sauvé les valeurs POST dans des variables de SESSION, tu les auras toujours et tu pourras les réutilisé à la place des variables POST. Si tu peux trouver à faire un truc du genre, ça pourrait solutionner le problème.
Ajouter un commentaire
Réponse
+0
moins plus
bonjour;


Sinon dans le php.ini quand il y a 2M, c'est bien 2*1024*1024 octet?
c'est bien ça !
bonne journée
X-Fan- 30 juil. 2008 à 16:04
Me semble que c'est ça .
Ajouter un commentaire
Ce document intitulé « PHP upload_max_filesize » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?