Fonctionnement MAX_FILE_SIZE dans form

Fermé
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 - 3 juil. 2012 à 16:08
 Utilisateur anonyme - 4 juil. 2012 à 15:35
Bonjour,



J'ai toujours quelques soucis avec les uploads et les fichiers trop volumineux. Je souhaite simplement traiter l'erreur afin d'éviter à l'utilisateur de se trouver sur une page planté. Donc lorsqu'il mets en upload un fichier que le serveur n'autorisera pas, qu'il reçoive un message d'erreur lui indiquant que le fichier est trop lourd.

J'ai cru comprendre qu'avec un champ caché on régler ce problème :

<input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
Photo *<input type="file" name="photo" />

Mais ça ne règles absolument pas mon problème. J'ai fait quelques test et j'ai l'impression que cette ligne ne sert à rien. Je plante sans doute quelque part. J'aurai aimé que vous m'éclairiez sur le sujet.

merci.

5 réponses

Utilisateur anonyme
3 juil. 2012 à 17:06
Regarde la remarque tout en bas de la page
https://www.php.net/manual/fr/features.file-upload.post-method.php
MAX_FILE_SIZE est traité par PHP après la réception du fichier, tu ne peux pas compter dessus pour empêcher le début de l'envoi par le client.
1
Utilisateur anonyme
3 juil. 2012 à 16:13
Bonjour

Il y a aussi d'autres limitations, comme upload_max_filesize dans php.ini. Regarde la doc, il y a quelques tuyaux :
https://www.php.net/manual/fr/features.file-upload.common-pitfalls.php
0
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 53
3 juil. 2012 à 16:38
Je sais. Je ne souhaite pas modifier les limitations du serveur, simplement pouvoir envoyer un message d'erreur correct à l'utilisateur et lui éviter de devoir attendre plusieurs minute avant de lui indiquer que le fichier est trop lourd.

Car dans mes tests, même quand je mets le
<input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
a 200, rien ne change, le navigateur est parti pour plusieurs minute d'upload.

Merci pour la rapidité de la réponse ^^
0
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 53
4 juil. 2012 à 15:25
Effectivement.
Mais je ne comprend pas bien. Le traitement de MAX_FILE_SIZE par php est 'automatique' ou est-ce moi qui doit faire ce traitement ?
S'il est automatique, que fait-il exactement ?

Donc si je comprends bien, il n'y a absolument aucun moyen d'éviter à l'utilisateur une longue attente inutile ?

Et j'ai toujours mon plantage à la fin de cette attente. Pour précision, le plantage est que le navigateur perd la connexion avec le serveur. Mais j'ai l'impression que c'est lié au faite que je suis en wifi. ( Je vai faire des test à ce sujet )
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
4 juil. 2012 à 15:35
C'est le PHP qui compare la longueur reçu à la longueur indiquée dans MAX_FILE_SIZE.
Mais il est très facile à un tricheur de modifier la valeur de MAX_FILE_SIZE, donc ce test n'est pas très utile.
Enfin, d'après ce commentaire, cette variable est purement php, elle n'a aucun rapport avec les standards du web et n'est donc traitée ni par les serveurs web, ni par les navigateurs.
Le plantage est peut-être simplement dû à la durée trop longue de la transmission. Il doit y avoir une limite aussi là-dessus.
0