Partage
  • Partager sur Facebook
  • Partager sur Twitter

uploader une image

Sujet résolu
    29 août 2006 à 18:21:26

    Salut à tous,

    J'ai un problème que je trouve bizarre.
    J'ai déjà fait un script d'uploade d'avatar qui marche impec.
    Et là, j'essaye de faire une sorte de blog mais ça ne marche pas.

    Ce qui cloche dessus c'est quand je veux récupérer l'extension de l'image, dans le upload d'avatar, ça marche mais sur l'autre, ça marche pas alors que j'utilise le même code.

    C'est au niveau du :

    $path_parts = pathinfo($_FILES['avatar']['name']);
    $ext = $path_parts['extension'];
    echo $ext;


    Pour le système d'avatar, ça affiche bien l'extension de l'image alors que pour le système du blog, ça n'affiche rien.

    C'est le même code mis apart le $_FILES['avatar']['name'] qui est $_FILES['photo']['name']

    Merci de m'aider
    • Partager sur Facebook
    • Partager sur Twitter
      30 août 2006 à 10:47:57

      Bon, je vous donne le code en entier de celui qui marche pas, d'abord le formulaire tout simple :

      <b>Description : </b><textarea name="description_photo" rows="7" cols="65"></textarea>
      <b>Titre : </b><input type="text" class="text_photo" size="25" maxlength="255" name="titre_photo" />
      <input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
      <input type="file" name="photo">
      <input type="submit" name="soumettre" value="Ajouter cet article" />


      Puis le php ... (assez long :-° ):

      if (isset($_POST['MAX_FILE_SIZE']))
      {
      $url = "http://yannsite.free.fr/admin/photo.php";
      $maxsize = "5000000";
      $path_parts = pathinfo($_FILES['photo']['name']);
      $ext = $path_parts['extension'];
      $nom = microtime() . '.' . $ext;
      $nom = str_replace(' ','',$nom);
      $destination = "photo/".$nom;

      echo 'Bonjour, l\'extension est : '.$_FILES['photo']['type'];
      if ($_POST['
      titre_photo'] != NULL)
      {

      if ($_POST['
      description_photo'] != NULL)
      {
      //On met les valeurs $_POST['
      titre_photo'] et $_POST['description_photo'] dans des variables simple et en supprimant le htmlentities
      $titre = htmlentities($_POST['
      titre_photo'],ENT_QUOTES);
      $contenu = bbcode($_POST['
      description_photo']);

      //VERIFICATION DE L'
      EXTENSION
      if($ext == 'gif' OR $ext == 'jpg' OR $ext == 'png' OR $ext == 'jpeg')
      {

      //VERIFICATION DE LA TAILLE DU FICHIER
      if ($_FILES['photo']['size'] < $maxsize)
      {

      $image_sizes = getimagesize($_FILES['photo']['tmp_name']);

              if ($ext == 'gif')
              {
                      if ($image_sizes[0] <= 120 AND $image_sizes[1] <= 120)
                      {
                              //ENREGISTREMENT                       
                              $resultat = move_uploaded_file($_FILES['photo']['tmp_name'],$destination);
                              if ($resultat)
                              {
                             
                              @mysql_query('INSERT INTO photo (titre_photo, description_photo, photo) VALUES (\'' .$titre. '\', \'' .$contenu. '\', \'' .$destination. '\')');
                              $message = 'Transfert r&#233ussi <br /><a href="http://yannsite.free.fr/images/photo/'. $nom .'"> Cliquez ici pour le voir ^^</a>';
                                                     
                              }
                              //FIN DE L'ENREGISTREMENT
                      }
                      else
                      {
                              $message = '<span class="erreur">D&#233sol&#233, les fichiers GIF ne peuvent pas être redimensionn&#233s et l\'image est trop grande.</span>';
                      }       
              }
              else
              {
                      if($image_sizes[0] <= 120 AND $image_sizes[1] <= 120)
                      {
                              //ENREGISTREMENT                       
                              $resultat = move_uploaded_file($_FILES['
      photo']['tmp_name'],$destination);
                              if ($resultat)
                              {
                             
                              @mysql_query('
      INSERT INTO photo (titre_photo, description_photo, photo) VALUES (\'' .$titre. '\', \'' .$contenu. '\', \'' .$destination. '\')');
                              $message = '
      Transfert r&#233ussi <br /><a href="http://yannsite.free.fr/images/photo/'. $nom .'"> Cliquez ici pour le voir ^^</a>';
                                             

                              }
                              else
                              {
                                      $message .= '<span class="erreur">Il y a eu un probl&#232me lors du t&#233l&#233chargement du fichier.</span>';
                              }
                              //FIN DE L'ENREGISTREMENT
                      }
                      else
                      {
                     
                      //REDIMENTIONNEMENT DE L'AVATAR TYPE PNG / JPG/ JPEG
                              if($ext == 'jpg' or $ext == 'jpeg')
                                      $source = imagecreatefromjpeg($_FILES['avatar']['tmp_name']);
                              elseif($ext == 'png')
                                      $source = imagecreatefrompng($_FILES['avatar']['tmp_name']);
             
                                      // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
                                      $largeur_source = imagesx($source);
                                      $hauteur_source = imagesy($source);
                                      if($largeur_source >= $hauteur_source)
                                      {
                                              $largeur_destination = 500;
                                              $hauteur_destination = round(500 * $hauteur_source / $largeur_source);
                                      } else {
                                              $hauteur_destination = 500;
                                              $largeur_destination = round(500 * $largeur_source / $hauteur_source);
                                      }

                                      $destination_new_image = imagecreatetruecolor($largeur_destination, $hauteur_destination); // On crée la miniature vide
             
                                      // On crée la miniature
                                      imagecopyresampled($destination_new_image, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
                                     

                                      // On enregistre la miniature
                                      if($ext == "png")
                                                      imagepng($destination_new_image, $destination);
                                      if($ext == "jpg" OR $ext == "jpeg")
                                                      imagejpeg($destination_new_image, $destination);

                             
                              @mysql_query('INSERT INTO photo (titre_photo, description_photo, photo) VALUES (\'' .$titre. '\', \'' .$contenu. '\', \'' .$destination. '\')');
                              $message = 'Transfert r&#233ussi <br /><a href="http://yannsite.free.fr/images/photo/'. $nom .'"> Cliquez ici pour le voir ^^</a>';
                                                                                     

                                     
                      //FIN DU REDIMENTIONNEMENT
                     
                      }
              }

                              }else
                              {
                              $message = 'L\'image est trop grosse, elle ne doit pas d&#233passer 500 Ko';
                              }
                      }else
                      {
                      $message = 'Le fichier doit &#234tre soit en gif, soit en jpg, soit en jpeg, soit en png ! ';
                      }
                      }else
                      {
                      $message = 'Il faut commenter l\'image';
                      }
              }else
              {
              $message = '
      Il faut mettre un titre à l\'article';
              }       
              }
      }else
      {
              echo '<span class="erreur">Tu dois &#234tre connect&#233 pour acc&#233der &#224 cette page.</span> <br />
        <a href="connexion2.php">Pour te connecter ! </a><br />'
      ;
      }

      • Partager sur Facebook
      • Partager sur Twitter
        30 août 2006 à 11:03:46

        hello, je sais pas si ça va t'aider mais pour voir une extension tu peux aussi faire comme ca :

        $nom_temp = $_FILES['photo']['tmp_name'];
        $extension = getimagesize($nom_temp);

        l'extension te sera donnée par

        $extension[2];

        Voilà, en espérant que ca va t'aider
        • Partager sur Facebook
        • Partager sur Twitter
          30 août 2006 à 11:27:58

          Ca marche pas, mais en fait,
          quand je fais
          echo $_FILES['photo']['name'], ça n'affiche rien.
          Alors que sur mon script d'avatar, ça affiche le nom du fichier ...

          Qu'est ce qui cloche ?
          • Partager sur Facebook
          • Partager sur Twitter
            30 août 2006 à 11:34:59

            Hum j'ai déjà eu ce genre de problème une fois et c'était du à l'emplacement de ma balise <form> </FORM> sur ma page...(je la vois pas dans ton code mais je pense que tu l'as mise).J'avais écrit

            <FORM><TABLE><TR><TD>...</TD></TR></FORM></TABLE>

            au lieu de

            <FORM><TABLE><TR><TD></TD></TR></TABLE></FORM>

            Le formulaire était envoyé mais ne récupérait pas toutes les données du formulaire
            • Partager sur Facebook
            • Partager sur Twitter
              30 août 2006 à 11:47:26

              Mon formulaire était sous la forme de tableau mais j'ai essayé comme ça :
              <form method="post" action="photo_chargement.php" name="formulaire">

              <input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
              <input type="file" name="photo">
              <input type="submit" name="soumettre" value="Ajouter cet article" />

              </form>


              Et ça marche toujours pas ...
              • Partager sur Facebook
              • Partager sur Twitter
                30 août 2006 à 11:56:36

                Il faut que tu mette le enctype='multipart/form-data' dans ton formulaire...


                <form method="post" action="photo_chargement.php" name="formulaire" enctype='multipart/form-data'>
                • Partager sur Facebook
                • Partager sur Twitter
                  30 août 2006 à 13:34:55

                  Merci beaucoup !!!! yop yop yop
                  Avoir un problème juste pour ça, ça m'a pris 3 jours ....
                  • Partager sur Facebook
                  • Partager sur Twitter

                  uploader une image

                  × 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