Partage
  • Partager sur Facebook
  • Partager sur Twitter

Upload uniquement de gifs...

Mais moi je veu tout...

Sujet résolu
Anonyme
    24 juin 2006 à 12:22:03

    Bonjour,
    J'ai actuellement un petit problème : mon script d'upload d'un nouvel avatar fonctionne qu'avec des images au format GIF...
    Comme vous devez vous en douter, je ne souhaite pas me contenter du GIF...

    Je profite de l'offre 1000GP gratuite de chez OVH.

    Voici le morceau de code en question :
    //Upload d'un nouvel avatar
    if(isset($_FILES['photo']))
    {
            $extensions_ok = array('png', 'gif', 'jpg', 'jpeg','PNG', 'GIF', 'JPG', 'JPEG');
                                           
            $taille_max=$_CONFIG_avatars_poidsmaxi
            $dest_dossier=$_CONFIG_avatars_dossier;
            $largeurmax=$_CONFIG_avatars_largeurmaxi;
            $hauteurmax=$_CONFIG_avatars_hauteurmaxi;
                                                   
            $dimentions=getimagesize($_FILES['photo']['tmp_name']);
            $largeur_image=$dimentions[0];
            $hauteur_image=$dimentions[1];
                                           
                                           
            if(!in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok )) 
            {   
                    $msg=1;
                    $erreur_upload=1;
            } 
            elseif(file_exists($_FILES['photo']['tmp_name']) and filesize($_FILES['photo']['tmp_name'])>$taille_max) 
            {   
                    $msg=2;
                    $erreur_upload=1;
            }
            elseif($largeur_image>$largeurmax)
            {
                    $msg=3;
                    $erreur_upload=1;
            }
            elseif($hauteur_image>$hauteurmax)
            {
                    $msg=4;
                    $erreur_upload=1;
            }
                                           
            if(!isset($erreur_upload))
            {   
                                                           
                    $nv_nom=uniqid('avatar_').'.'.substr(strrchr($_FILES['photo']['name'], '.'), 1) ;   
                                                   
                    $adresse=$_CONFIG_avatars_dossier.$avatar;
                    if(file_exists($adresse) AND is_file($adresse)) unlink($adresse);
                    if(move_uploaded_file($_FILES['photo']['tmp_name'], $_CONFIG_avatars_dossier.$nv_nom))
                    {
                            mysql_query("UPDATE membres SET avatar='".$nv_nom."' WHERE id='".$_SESSION['id']."'")or die('Ligne : '.__LINE__.' : '.mysql_error());
                                                   
                            $msg=5;
                    }
                    else
                    {
                            $msg=6; //Ce message correspond à l'impossibilité du déplacement de l'image ( c'est le message qui m'est affiché ).
                    }
            }
    }


    Merci d'avance pour vos réponse et le courage dont vous faites preuve pour lire ma source ;)
    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2006 à 12:25:52

      Déjà laisse tomber ton array d'extensions, utilise le renvoi de getimagesize() ;)
      Pour le type de fichier, dans ton code il est dans $dimentions[2] (PS : on écrit dimensions normalement :p)
      Les valeurs à autoriser pour toi sont
      1 = GIF, 2 = JPG, 3 = PNG

      Donc remplace
      if(!in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ))

      par
      if ($dimentions[2] > 3)

      :)


      edit : houla boulet, j'avais pas vu le commentaire à la fin du code :s
      enfin mon conseil reste quand même valable, même si ce n'est pas la cause du problème ^^
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        24 juin 2006 à 12:34:19

        Non, c'est toujour le meme probleme, c'est apres, lors du deplacement que ca ne marche pas :

        move_uploaded_file($_FILES['photo']['tmp_name'], $_CONFIG_avatars_dossier.$nv_nom)


        Dans la condition me renvoi false...
        • Partager sur Facebook
        • Partager sur Twitter
          24 juin 2006 à 12:47:53

          Hmm, quelques questions :
          d'où sort la variable $avatar, et à quoi sert le unlink($adresse) ?
          quel est le nom de ton image GIF qui passe, et d'une image non-GIF qui ne passe pas ?
          :o
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            24 juin 2006 à 12:57:46

            $avatar est le nom de l'avatar de l'utilisateur ( extension comprise ).

            $adresse est le dossier qui contient les avatars suivi du nom de l'avatar.

            unlink est une fonction qui permet de supprimer un fichier.

            Les noms des images varient tout le temps car j'utilise la fonction uniqid pour générer l'id :
            $nv_nom=uniqid('avatar_').'.'.substr(strrchr($_FILES['photo']['name'], '.'), 1)


            Apres ce code, $nv_nom ( traduire nouveau nom ) contient ceci :

            Citation : $n_nom

            avatar_unechainincomprehgensible.extension

            • Partager sur Facebook
            • Partager sur Twitter
              24 juin 2006 à 13:06:26

              huhu je connais unlink(), je demandais juste pourquoi tu supprimais le fichier vu que je ne savais pas de quel fichier il s'agissait :p

              Et uniquid() aussi je connais (en même temps sinon il suffit de cliquer :p), je te demandais le nom original de l'image (celui contenu dans $_FILES['photo']['name']) ^^
              mais en fait vu que tu ne gardes que l'extension... :/
              Mébon, tu as essayé d'uploader un GIF en changeant juste son extension en .jpg par exemple ? :o
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                24 juin 2006 à 13:16:59

                Mince...
                Certaines images JPEG fonctionnent et d'autres pas...
                Les images en PNG fonctionnent pour la plupart.
                Il y a des GIF qui ne marchent pas...

                La, j'avoue que je ne comprend pas ou est le probleme...

                Si tu veux voir le systeme d'upload en oeuvre, vas sur http://www.lahache.info/parametres.php

                et tu te connectes avec les identifiants suivants :
                test
                test

                Ensuite tu vas dans parametres ( en bas a gauche dans le menu ) puis avatar.
                • Partager sur Facebook
                • Partager sur Twitter
                  24 juin 2006 à 14:10:03

                  mais mdr c'est quoi cette valeur dans ton formulaire !

                  <input type="hidden" name="MAX_FILE_SIZE" value="100Ko" />

                  Il faut donner une taille en octets, un entier, pas un truc comme ça ! :p

                  Ça doit être pour ça que toutes les images dont le poids est supérieur à 5 Ko (d'après mes tests) bloquent :-°(par contre je ne sais pas pourquoi "100Ko" => 5 Ko...)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    24 juin 2006 à 14:16:28

                    Bravo ! ! !
                    La je di chapeau...
                    Je n'avais pas fait gaffe du tout...
                    En fait, j'utilisait la variable de template du poid maxi des images ( qui est formaté ) au lieu du nombre d'octets...
                    Encore merci !
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Upload uniquement de gifs...

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown