Insérer une image après avoir controlé taille et poids
23 messages • Page 1 sur 2 • 1, 2
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Insérer une image après avoir controlé taille et poids
Bonjour,
Je m'échine à essayer de permettre l'upload d'une image seulement si sa taille et son poids respectent les valeurs prévues.
Pour l'instant, j'en suis à controler le poids.
Voilà mon code sur la page du formulaire :
Et le code sur la page de réception :
Bon alors, si le fichier fait moins de 30ko, il est uploadé, je le retrouve dans le bon dossier.
Si le fichier fait plus de 30ko, alors il n'est pas uploadé, mais l'instruction du else n'est pas effectuée et le message echo'fichier trop gros' ne s'affiche pas.
J'ai essayé de modifier la valeur "MAX_FILE_SIZE" du input hidden pour être certain qu'elle soit supérieure aux fichiers de test, eux-mêmes supérieur à la valeur limite des conditions if, mais non, rien à faire, le echo n'est pas affiché.
Qui peut m'aider ?
Je m'échine à essayer de permettre l'upload d'une image seulement si sa taille et son poids respectent les valeurs prévues.
Pour l'instant, j'en suis à controler le poids.
Voilà mon code sur la page du formulaire :
- Code: Tout sélectionner
<form method="post" action="creation-site.php" enctype="multipart/form-data">
8/9 ) Votre photo :</b> ajoutez une photo pour renforcer votre présentation (format 130px*130px et 30ko maximum).
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file" name="photo" value="parcourir">
<input type="hidden" name="choix" value="2">
<input type="hidden" name="acceptation" value="ok">
<input type="submit" name="pro-gratuit-8" value="envoyer">
</form>
Et le code sur la page de réception :
- Code: Tout sélectionner
//on test si il y a le fichier photo
if(is_uploaded_file($_FILES['photo']['tmp_name']))
{
//on test le poids
if( filesize($_FILES['photo']['tmp_name']) <= 30000 )
{
//si le poids est inférieur à 30ko, on l'insère
$chemin = 'visu/membres/';
if (move_uploaded_file($_FILES['photo']['tmp_name'], $chemin.$_FILES['photo']['name']))
{
echo "Le fichier ".$_FILES['photo']['name'].
" a été téléchargé avec succès dans ".$chemin;
}
;}//ferme le test du poids
//si poids >30KO, message d'erreur
else
{
echo'fichier trop gros'
;}
;}//ferme le test si le fichier est présent
Bon alors, si le fichier fait moins de 30ko, il est uploadé, je le retrouve dans le bon dossier.
Si le fichier fait plus de 30ko, alors il n'est pas uploadé, mais l'instruction du else n'est pas effectuée et le message echo'fichier trop gros' ne s'affiche pas.
J'ai essayé de modifier la valeur "MAX_FILE_SIZE" du input hidden pour être certain qu'elle soit supérieure aux fichiers de test, eux-mêmes supérieur à la valeur limite des conditions if, mais non, rien à faire, le echo n'est pas affiché.
Qui peut m'aider ?
Sa m'interesse aussi!!! Hop je reco.
Je cherche également un script d'upload d'images de la part des navigateurs et par la suite, de les afficher avec des pages de navigation < 1 | 2 | 3 | 4...>
Dis moi...ya moyen de controler les parametre de resolution de l'images aussi?
Je cherche également un script d'upload d'images de la part des navigateurs et par la suite, de les afficher avec des pages de navigation < 1 | 2 | 3 | 4...>
Dis moi...ya moyen de controler les parametre de resolution de l'images aussi?
Merci pour le lien ACth. J'ai pas l'habitude de ces histoires de serveur et franchement, je pige pas lourd.
Là j'ai utilisé var_dump($_FILES); que j'ai écrit à la première ligne du code au-dessus.
ça me donne ça, mais je pige pas :
Upload d'une image faisant moins de 30ko, soit la limite autorisée :
Et voilà ce que ça m'affiche avec une image trop grosse :
Donc, comme j'ai dit, le problème pour l'instant c'est que je n'arrive pas à afficher le message d'erreur "image trop lourde" si l'image fait plus de 30KO.
Là j'ai utilisé var_dump($_FILES); que j'ai écrit à la première ligne du code au-dessus.
ça me donne ça, mais je pige pas :
Upload d'une image faisant moins de 30ko, soit la limite autorisée :
- Code: Tout sélectionner
array(1) { ["photo"]=> array(5) { ["name"]=> string(10) "LXXMMI.jpg"
["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(14)
"/tmp/php2AhOJh" ["error"]=> int(0) ["size"]=> int(29212) } } Le
fichier LXXMMI.jpg a été téléchargé avec succès dans visu/membres/
Et voilà ce que ça m'affiche avec une image trop grosse :
- Code: Tout sélectionner
array(1) { ["photo"]=> array(5) { ["name"]=> string(51)
"chancelery__front__office__s1_.jpg" ["type"]=>
string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(2) ["size"]=>
Donc, comme j'ai dit, le problème pour l'instant c'est que je n'arrive pas à afficher le message d'erreur "image trop lourde" si l'image fait plus de 30KO.
Il suffit de faire le test sur $_FILES['userfile']['size'] et / ou en fonction du message d'erreur.
si size trop grand et / ou error -> afficher message
si size trop grand et / ou error -> afficher message
Ok, j'avais mis une valeur trop faible pour MAX_FILE_SIZE dans le hidden.
Maintenant, il y a encore des problèmes :
- Vérifier les dimensions de l'images, pour qu'elles soient inférieures à 130*130px.
- Si l'image uploadée a un nom du genre "mon image.jpg", soit avec un espace, alors on ne la retrouve pas dans le dossier de destination.
- Je dois controler si l'image est gif ou un jpg (éventuellement png).
Maintenant, il y a encore des problèmes :
- Vérifier les dimensions de l'images, pour qu'elles soient inférieures à 130*130px.
- Si l'image uploadée a un nom du genre "mon image.jpg", soit avec un espace, alors on ne la retrouve pas dans le dossier de destination.
- Je dois controler si l'image est gif ou un jpg (éventuellement png).
Et ça, qu'est-ce que ça vaut (trouvé sur le net) :
- Code: Tout sélectionner
if($img = imagecreatefromgif($uploadfile))
{
if((ImageSX($img) == 16) && (ImageSY($img) == 12))
{
ok
}
else
{
pas ok
}
Taratata, me revoilà eh eh !
Alors j'ai presque réussi
(je sais c'est fastoche, mais bon)
Bon le problème, c'est que ça m'affiche ça :
Par contre avec ce code, je n'ai pas d'erreur à l'affichage. Mais il n'est pas valable car la condition sur les dimensions et le type mime n'est pas prévue, seul l'affiche est effectué :
Alors j'ai presque réussi
- Code: Tout sélectionner
//on test si il y a le fichier photo
if(is_uploaded_file($_FILES['photo']['tmp_name']))
{
//on test le poids
if( filesize($_FILES['photo']['tmp_name']) <= 30000 )
{//si le poids est inférieur à 30ko, on test les dimensions et le type du fichier
$chemin = 'visu/membres/';
$chemin2=$chemin.$_FILES['photo']['name'];
list($width, $height, $type, $attr) =getimagesize($_FILES['photo']['name']);
echo" $width - $height - $type <p> ";
$datas=getimagesize($_FILES['photo']['name']);
echo $datas['mime'];
//on va tester les dimensions et le format du fichier
if($width<130 AND $height<130 AND ($type=="image.gif" OR $type=="image.jpg"))
{
//on passe le fichier du répertoire temporaire au répertoire définitif
if (move_uploaded_file($_FILES['photo']['tmp_name'], $chemin.$_FILES['photo']['name'])) {
echo "Le fichier ".$_FILES['photo']['name'].
" a été téléchargé avec succès dans ".$chemin;
echo'<p>'
;}//ferme if move_uploaded_file
;}//ferme le test des dimensions et du format
else { //si dimension ou format mauvais
echo'dimension ou format mauvais'
;}
;}//ferme le test du poids
else { //si poids >30KO, message d'erreur
echo'fichier trop gros'
;}
}//ferme le test si le fichier est présent
Bon le problème, c'est que ça m'affiche ça :
- Code: Tout sélectionner
Warning: getimagesize(bonne-taille-gif.gif) [function.getimagesize]: failed to open stream: No such file or directory in /home/site/www/photo-test.php on line 148
- -
Warning: getimagesize(bonne-taille-gif.gif) [function.getimagesize]: failed to open stream: No such file or directory in /home/site/www/photo-test.php on line 151
dimension ou format mauvais
Par contre avec ce code, je n'ai pas d'erreur à l'affichage. Mais il n'est pas valable car la condition sur les dimensions et le type mime n'est pas prévue, seul l'affiche est effectué :
- Code: Tout sélectionner
if(is_uploaded_file($_FILES['photo']['tmp_name']))
{
//on test le poids
if( filesize($_FILES['photo']['tmp_name']) <= 30000 )
{
//si le poids est inférieur à 30ko, on l'insère
$chemin = 'visu/membres/';
if (move_uploaded_file($_FILES['photo']['tmp_name'], $chemin.$_FILES['photo']['name'])) {
echo "Le fichier ".$_FILES['photo']['name'].
" a été téléchargé avec succès dans ".$chemin;
echo'<p>';
list($width, $height, $type, $attr) =getimagesize("visu/membres/barre-test.gif");
echo" $width - $height - $type -$attr <p> ";
$chemin2=$chemin.$_FILES['photo']['name'];
$datas =getimagesize("$chemin2");
echo $datas[mime];
}
}//ferme le test du poids
else { //si poids >30KO, message d'erreur
echo'fichier trop gros'
;}
}//ferme le test si le fichier est présent
Bonne question.
Ligne 148 (juste en dessous de $chemin dans le troisième if):
Ligne 151 :
Ligne 148 (juste en dessous de $chemin dans le troisième if):
- Code: Tout sélectionner
if (move_uploaded_file($_FILES['photo']['tmp_name'], $chemin.$_FILES['photo']['name'])) {
Ligne 151 :
- Code: Tout sélectionner
$datas=getimagesize($_FILES['photo']['name']);
Dernière édition par Meeuuuhhh le Ven Jan 12, 2007 15:47, édité 1 fois.
23 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Nouveautés sur les recherches de Google Images
- Comment créer une page web en PHP
- Google change de favicon
- La terre vue par satellite : accord entre Google et Spot Image
- Conseils pour bien référencer son site dans Google News
- Google indexe plus de 8 milliards de pages
- Référencement : faut-il abandonner les balises META ?
- La toolbar pour Firefox de Google
- Ajouter un moteur de recherche d'images sur son site
- Google souhaite lever plus de 2 milliards de dollars
- Code de contrôle image (captcha)
- Comment insérer une image
- Récuperer poids et dimensions d'une image
- Insérer du texte autour d'une image
- poids de page, image ou pas comprises
- Récupérer un ID apres selection et inserer cet ID
- taille des polices et poids des mots-clés
- Poids d'une image (alt) dans une balise H1 ??
- Insérer une image ou un texte dans un page pré-concue
- Taille maxi ALT image
- aide pour blogger: insérer une image n'importe dans 1 texte
- Détection de la taille d'une image [RESOLU]
- Changer la taille d'une image avec le css
- Script avec "image" pour une courbe de poids.
- Inserer une image dans echo "message";
Consultez la description détaillée des produits ou services de Google suivants : Google Image Labeler
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum