PHP taille image
Résolu
Solar13
Messages postés
204
Date d'inscription
Statut
Membre
Dernière intervention
-
Solar13 Messages postés 204 Date d'inscription Statut Membre Dernière intervention -
Solar13 Messages postés 204 Date d'inscription Statut Membre Dernière intervention -
Bonjour à vous,
Je veux faire un contrôle sur la taille de l'image avant upload, mais je ne sais pas pourquoi, cela ne marche pas, quand je met une taille supérieure, il ne fait rien alors qu'il devrait m'afficher un message d'erreur.
Le formulaire:
Je veux faire un contrôle sur la taille de l'image avant upload, mais je ne sais pas pourquoi, cela ne marche pas, quand je met une taille supérieure, il ne fait rien alors qu'il devrait m'afficher un message d'erreur.
if(isset($_FILES['userfile']) && $_FILES['userfile']['size']>0) { $file_Extension = strtolower(pathinfo($_FILES['userfile']['name'],PATHINFO_EXTENSION)); $infosImg = getimagesize($_FILES['userfile']['tmp_name']); // ----------------- if (filesize($_FILES['userfile']['tmp_name']) > 2097152) { echo "Taille !"; }
Le formulaire:
<h1>Ajouter une image:</h1> <br /> <form action="addimage.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="action" value="add" /> <input type="hidden" name="MAX_FILE_SIZE" value="5242880" /> <p>Image:<br /><input type="file" name="userfile" /></p> <br /> <p><input type="submit" name="submit" value="Envoyer" /></p>
A voir également:
- PHP taille image
- Comment réduire la taille d'un fichier - Guide
- Reduire taille image - Guide
- Image iso - Guide
- Afficher taille dossier windows - Guide
- Acronis true image - Télécharger - Sauvegarde
11 réponses
La variable $_FILES['userfile']['tmp_name'] contient le nom du fichier envoyé, et ici on compare donc le nom du fichier à une taille ... ?
il faudrait utiliser $_FILES['userfile']['size'] qui contient la taille du fichier envoyé.
il faudrait utiliser $_FILES['userfile']['size'] qui contient la taille du fichier envoyé.
Merci pour la réponse :)
Malheureusement c'est pareil, il n'upload pas ça c'est bon, mais il ne se passe rien quand je clique sur le bouton.
Il devrait pourtant u avoir le message :(
Malheureusement c'est pareil, il n'upload pas ça c'est bon, mais il ne se passe rien quand je clique sur le bouton.
Il devrait pourtant u avoir le message :(
Alors si le fichier est plus grand que 5Mo il est bloqué à cause du champs MAX_FILE_SIZE du formulaire et n'est donc pas envoyé au serveur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon ... ^^
Sinon, il me semle que $_FILES['userfile']['tmp_name'] ne contient que le chemin vers le fichier, il manque donc le nom du fichier (peut-être).
Il faudrait essayer avec $_FILES['userfile']['tmp_name'].'/'.$_FILES['userfile']['name']
Sinon, il me semle que $_FILES['userfile']['tmp_name'] ne contient que le chemin vers le fichier, il manque donc le nom du fichier (peut-être).
Il faudrait essayer avec $_FILES['userfile']['tmp_name'].'/'.$_FILES['userfile']['name']
Toujours rien :(
J'ai fait un echo du size file, il me renvoie bien le champ max size file.
C'est vraiment la comparaison qui ne se fait pas j'ai l'impression :(
J'ai fait un echo du size file, il me renvoie bien le champ max size file.
C'est vraiment la comparaison qui ne se fait pas j'ai l'impression :(
Hmm alors il n'y a plus qu'a mettre des echos un peut partout voir si il rentre dans les if, si les valeurs prennent la bonne valeur ...
Je viens de faire un echo du size et du name.
C'est un truc de fou, si je met par exemple un .exe dans le formulaire, il va bien me renvoyer ça:
730344MassEffectLauncher.exe
( La taille et le texte )
Si je me met une grande image, il me revoie 0 !
0image.jpg
C'est un truc de fou, si je met par exemple un .exe dans le formulaire, il va bien me renvoyer ça:
730344MassEffectLauncher.exe
( La taille et le texte )
Si je me met une grande image, il me revoie 0 !
0image.jpg
J'édite vite, fait, j'ai mon php.ini en max 2M en upload, donc c'est normal qu'il ne se passe rien.
J'ai augmenté et c'est bon, mais du coup, cela upload.
Y'a vraiment un soucis au niveau de la comparaison du size.
Il me renvoie bien la taille, mais ne stoppe pas en cas de valeur supérieure.
Tu ne verrais pas un oubli ou quelque chose ?
J'ai augmenté et c'est bon, mais du coup, cela upload.
Y'a vraiment un soucis au niveau de la comparaison du size.
Il me renvoie bien la taille, mais ne stoppe pas en cas de valeur supérieure.
Tu ne verrais pas un oubli ou quelque chose ?
Résolu !
C'était le filesize qui faisait merder.
En l'enlevant:
if (filesize($_FILES['userfile']['tmp_name']) > 2097152)
Cela marche nickel.
Il y a moyen du coup de faire la comparaison avec la taille max du php.ini pour afficher aussi un message d'erreur au lieu qu'il ne fasse rien ?
C'était le filesize qui faisait merder.
En l'enlevant:
if (filesize($_FILES['userfile']['tmp_name']) > 2097152)
Cela marche nickel.
Il y a moyen du coup de faire la comparaison avec la taille max du php.ini pour afficher aussi un message d'erreur au lieu qu'il ne fasse rien ?
Si l'image est supérieur à la valeur du php.ini, l'image ne sera pas envoyé.
Tu ne pourras donc pas comparer le poid du fichier.
Si tu souhaites afficher un message d'erreur, il te faut vérifier l'état de l'upload.
Tu peux le faire en utilisant la variable $_FILES['userfile']['error'] .
Voir ici: http://phpcodeur.net/articles/php/upload
Si ton problème est résolu, n'oublie pas modifier le statut comme tel en haut de cette page.
Tu ne pourras donc pas comparer le poid du fichier.
Si tu souhaites afficher un message d'erreur, il te faut vérifier l'état de l'upload.
Tu peux le faire en utilisant la variable $_FILES['userfile']['error'] .
UPLOAD_ERR_OK Valeur : 0; Aucune erreur, le fichier a bien été uploadé UPLOAD_ERR_INI_SIZE Valeur : 1; Le fichier excède le poids autorisé par la directive upload_max_filesize de php.ini UPLOAD_ERR_FORM_SIZE Valeur : 2; Le fichier excède le poids autorisé par le champ MAX_FILE_SIZE s'il a été donné UPLOAD_ERR_PARTIAL Valeur : 3; Le fichier n'a été uploadé que partiellement UPLOAD_ERR_NO_FILE Valeur : 4; Aucun fichier n'a été uploadé
Voir ici: http://phpcodeur.net/articles/php/upload
Si ton problème est résolu, n'oublie pas modifier le statut comme tel en haut de cette page.