Téléchargement de fichier par formulaire : contrôler le poids des envois
Une des limitations des uploads en HTML / PHP est le poids des fichiers.
Tous les webmasters le savent, les fichiers de plus de 2MO provoquent des erreurs de téléchargement (voire des plantages du serveur) quand les paramètres PHP/Apache par défauts sont appliqués.
Il y a bien la possibilité de modifier en FTP le temps d’exécution des scripts ou le poids maximum autorisé en PHP (voir ici : « Tout, tout tout sur les .htaccess de base !« ), mais un certain nombre d’hébergeurs payants ou gratuit ne permettent pas l’utilisation des fichiers htaccess par sécurité.
Il reste donc une autre solution, qui consiste à contrôler le poids des fichiers mis en ligne par les utilisateurs de vos formulaire : c’est très simple en HTML / PHP…
1ere étape : Insérer le poids maximum autorisé au niveau du formulaire HTML
Il suffit de rajouter un champ « hidden » suivant dans le formulaire AVANT le champ « file » de sélection du fichier :
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
L’attribut « value » indiquera ici le poids maximum autorisé.
Attention cette valeur est en octets !
Pour mémoire : 1 Ko = 1024 octets (et non pas 1000 octets : ce serait trop simple ;-))
et donc 1MO = 1048576 octets
En théorie celà suffit à bloquer l’envoi en cas de dépassement…
2eme étape : contrôler en PHP
En pratique celà dépend du navigateur de votre client, et il reste donc nécessaire de contrôler le poids du fichier sur le fichier destinataire du formulaire (celui dont vous avez donné l’adresse par l’attribut « action » de la balise « form »)
Le contrôle s’effectue par l’intermédiaire de la variable $_FILES : $_FILES[‘nom-du-champ-upload’][‘size’] indique le poids du fichier téléchargé, il est donc simple d’en contrôler la valeur et de renvoyer sur la page d’envoi en cas de dépassement du poids souhaité…
Autre contrôle possible : si la variable $_FILES[‘nom-du-champ-upload’][‘error’] = 2, c’est que le poids indiqué dans la variable cachée $_POST[‘MAX_FILE_SIZE’] est dépassée… donc le traitement est le même : on renvoit l’utilisateur vers le formulaire, avec un gentil message d’erreur !
Regarde ça : http://wpchannel.com/augmenter-taille-maximale-envoi-fichiers-php-ini-wordpress/
Hello ! Et pour le download de fichier via un formulaire traité en PHP ? Vous avez jamais eu de erreur 500 avec fichier introuvable lorsque le fichier est supérieur à 300MO ?
Je suis chez OVH et mon formulaire permet de downloader un fichier en remplissant un formulaire. Le dossier contenant tous les fichiers est protégé grâce à un htaccess et à mon script PHP. Mais il semblerait qu’il y ai une limitation.
Auriez-vous une piste pour m’aider à régler ce soucis ?
Tous les webmasters le savent, les fichiers de plus de 2MO provoquent des erreurs de téléchargement (voire des plantages du serveur) quand les paramètres PHP/Apache par défauts sont appliqués. Il y a bien la possibilité de modifier en FTP le temps d’exécution des scripts ou le poids maximum autorisé en PHP (voir ici : « Tout, tout tout sur les .htaccess de base ! « ), mais un certain nombre d’hébergeurs payants ou gratuit ne permettent pas l’utilisation des fichiers htaccess par sécurité.
Pour éviter les serveurs obèses ;-D
controler le poid!!!!!! mouaaaa ze ne vois pas du tout pourquoi il faut touzour controler le poids



