Partage
  • Partager sur Facebook
  • Partager sur Twitter

Upload d'images

Ecrasement fichiers..pas top

    21 mai 2006 à 16:06:22

    Bonjour, je dispose d'un script d'upload d'images. le problème est le suivant: si une image est uploadée et qu'elle à le même nom qu'une image déjà hébergée, pas d'erreur, elle est juste remplacée :s

    Pas top ;)

    J'aimerai savoir comment mettre une erreur au cas ou une image du même nom existe déjà :)
    (ou si c'est pas trop compliqué: changer automatiquement le nom de l'image si une image du même nom existe. Par ex, si l'image "baby.jpg" existe déjà et que l'on en réenvoi une du même nom, ça la renomme en "baby_2.jpg" ou autre chose :) ...)

    Merci beaucoup!!!!!

    Le script:
    <?php

    //------------------------------------
    // Script réalisé par Webdeb73
    // Le 17/10/2004
    // Licence GNU/GPL
    // http://www.webmaster-debutant.net
    //-------------------------------------


    //----------------------------
    // DEFINITION DES VARIABLES
    //----------------------------

    $target = "files/"; // Repertoire cible
    $max_size = 500000; // Taille max en octets du fichier
    $width_max = 800; // Largeur max de l'image en pixels
    $height_max = 600;    // Hauteur max de l'image en pixels

    //---------------------------------------------
    // DEFINITION DES VARIABLES LIEES AU FICHIER
    //---------------------------------------------

    $nom_file = $_FILES['fichier']['name'];
    $taille = $_FILES['fichier']['size'];
    $tmp = $_FILES['fichier']['tmp_name'];

    //----------------------
    // SCRIPT D'UPLOAD
    //----------------------

    if($_POST['posted'])
    {

    // On vérifie si le champ est rempli

    if($_FILES['fichier']['name'])
    {
    // On vérifie l'extension du fichier

      if(substr($nom_file,-3) == "jpg" OR substr($nom_file,-3) == "gif" OR substr($nom_file,-3) == "png" OR substr($nom_file,-3) == "jpeg" OR substr($nom_file,-3) == "bmp")
      {
       // On récupère les dimensions du fichier

        $infos_img = getimagesize($_FILES['fichier']['tmp_name']);
         
       // On vérifie les dimensions et taille de l'image

        if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size))
        {
         // Si c'est OK, on teste l'upload

          if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES
    ['fichier']['name']))
          {

           // Si upload OK alors on affiche le message de réussite


                    echo '<p align="center">';
            echo '<font color="#009933">';
            echo '<img align="absmiddle" src="images/oki.gif" />&nbsp;&nbsp;<b>Image uploadée avec succès !</b>';
            echo '</font>';
            echo '<hr><p>';
            echo '<b>Fichier :</b> '.$_FILES['fichier']['name'].'</br>';
            echo '<b>Taille :</b> '.$_FILES['fichier']['size'].' Octets</br>';
            echo '<b>Largeur :</b> '.$infos_img[0].' px</br>';
            echo '<b>Hauteur :</b> '.$infos_img[1].' px</br>';
                    echo '<br />';
                    echo '<b>Voir votre image:</b> <a href="http://upload.design-prod.info/files/'.$_FILES['fichier']['name'].'" target="blank">Cliquez ici</a></br>';
                    echo '<b>Adresse directe:</b> http://upload.design-prod.info/files/'.$_FILES['fichier']['name'].'</br>';
                    echo '<b>Code HTML:</b> &lt;img alt="Image" src="http://upload.design-prod.info/files/'.$_FILES['fichier']['name'].'" /&gt;</br>';
                    echo '<b>BBcode (forums):</b> [img]http://upload.design-prod.info/files/'.$_FILES['fichier']['name'].'[/img]</br>';
                    echo '<hr></p>';
          }
           else
          {

           // Sinon on affiche une erreur système

            echo '<p align="center">';
            echo '<font color="#FF0000">';
            echo '<img align="absmiddle" src="images/noki.gif" />&nbsp;&nbsp;<b>Problème lors de l\'upload !</b><br><br><b>'.$_FILES['fichier']['error'].'</b>';
            echo '
    </font><br><br>';
          }
        }
         else
        {

         // Sinon on affiche une erreur pour les dimensions et taille de l'
    image

          echo '<p align="center">';
          echo '<font color="#FF0000">';
          echo '<img align="absmiddle" src="images/noki.gif" />&nbsp;&nbsp;<b>Problème dans les dimensions ou taille de l\'image !</b>';
          echo '
    </font><br><br>';
        }
      }
       else
      {

       // Sinon on affiche une erreur pour l'
    extension

        echo '<p align="center">';
        echo '<font color="#FF0000">';
        echo '<img align="absmiddle" src="images/noki.gif" />&nbsp;&nbsp;<b>Erreur: Votre image ne comporte pas l\'extension .JPG ou .GIF ou .PNG ou .BMP!</b>';
        echo '
    </font><br><br>';
      }
    }
    else
    {

    // Sinon on affiche une erreur pour le champ vide

      echo '
    <p align="center">';
      echo '
    <font color="#FF0000">';
      echo '
    <img align="absmiddle" src="images/noki.gif" />&nbsp;&nbsp;<b>Le champ du formulaire est vide !</b>';
      echo '
    </font><br><br>';
    }
    }
    ?>
    • Partager sur Facebook
    • Partager sur Twitter
      21 mai 2006 à 16:09:34

      Bonjour,

      A ta place, j'attribuerai un numéro à chaque image, non un nom (par exemple, 156.jpg serai la 156ème image uploadée). Ca t'évitera ce genre de problèmes.

      Pour l'incrémenter, soit tu le fais en écrivant dans un fichier texte, soit avec une table MySQL (mais ça aurait l'air bourin :p )
      • Partager sur Facebook
      • Partager sur Twitter
        21 mai 2006 à 16:11:00

        Le problème est que: comme tu as vu j'ai choppé un script sur un site et modifié un petit peu la mise en forme et le test d'extensions. Mais je n'y connais pas grand chose en PHP donc en me disant ça, ca ne me met pas sur la voie :honte::honte:
        • Partager sur Facebook
        • Partager sur Twitter

        Upload d'images

        × 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