PHP upload_max_filesize

Fermé
arnaudligth - 30 juil. 2008 à 15:53
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 - 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?
A voir également:

2 réponses

X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
30 juil. 2008 à 16:00
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?
0
suite à ton lien, je suis dans ce cas là :

upload_max_filesize = 2M permet de définir la taille maximale autorisée pour le fichier. Si cette limite est dépassée, le serveur enverra un code d'erreur.

<INPUT type=hidden name=MAX_FILE_SIZE VALUE=2097152> ça n'a rien changé et perso je pense que ce truc c'est du flanc je vois pas à quoi il sert... mais je ne demande qu'à être convaincu !!! ;)

donc toi ton MAX_FILE_SIZE=1048576 et ton upload_max_filesize faisait combien ?

Si j'ai bien compris tu fais un truc du genre (attention je prends des raccourcis...) :

if (filesize($_FILES['fichier']['tmp_name']) < $_POST['MAX_FILE_SIZE'])
{
//c'est en dessous de la limite donc le fichier est correct
}
else
{
//c'est trop gros
}
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24 > arnaudligth
30 juil. 2008 à 16:32
C'est pas du flanc. J'ai jamais réussi à uploader un truc de 1mo et 1octet. Donc ça marche. Tu ne l'utilises pas correctement il faut croire.

upload_max_filesize = 2M
$max_file_size = 1000;
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size ?>">

Tu fais un array genre:
$errors = array(1 => 'php.ini max file size exceeded',
2 => 'html form max file size exceeded',
3 => 'file upload was only partial',
4 => 'no file was attached');

Et:
echo $_FILES[$fieldname]['error'];

S'il affiche 0, tout est bon sinon il t'affiche le numéro de l'erreur

echo $errors[$_FILES[$fieldname]['error']];

Essaie et tu verras bien. Pour ma part, ça marche très bien. J'ai essayé avec des fichiers de 2mo et il les refuse car c'est trop grand.
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24 > X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010
30 juil. 2008 à 16:33
Tien, j'ai retrouvé le tuto:
http://www.webdeveloper.com/forum/showthread.php?t=101466

En anglais mais de grande qualité ;)
0
arnaudligth > X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010
31 juil. 2008 à 15:12
salut,

oui ça marche, MAIS pas si je dépasse des fichiers qui sont plus gros que mon post_max_size (8M) la page refuse d'être chargée... et c'est ça qui me gêne...

et je comprends pas trop l'histoire de se champ :

<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size ?>">

Pourquoi c'est lui qui limite l'envoi ? MAX_FILE_SIZE est une constante envoyée au serveur PHP ? au navigateur ? ou alors de la magie (et j'aime pas la magie...) ?

en tout cas merci pour le tuto, il m'a permis de vérifier que je devenais pas fou... puisqu'il a le même problème que moi...
0
arnaudligth > arnaudligth
31 juil. 2008 à 15:15
pour info ma variable $max_file_size=8388608 comme mon post_max_size....
0
Nico_ Messages postés 1219 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 189
30 juil. 2008 à 16:01
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
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
30 juil. 2008 à 16:04
Me semble que c'est ça .
0