IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Tester si l'extension d'une image est valide


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de snyfir
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 246
    Points : 56
    Points
    56
    Par défaut Tester si l'extension d'une image est valide
    Bonjour, pour savoir si le fichier qu'on m'envoie est bien une image je procède comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // Testons si l'extension est autorisée
    $infosfichier = pathinfo($_FILES['image']['name']);
    $extension_upload = $infosfichier['extension'];
    $extension_upload = strtolower($extension_upload); //converti en minuscule
    $extensions_autorisees = array('png', 'jpg', 'jpeg', 'gif');
    if (!in_array($extension_upload, $extensions_autorisees)) {
        echo "extension non valide !";
    }
    Le problème est que par exemple, si on prend un fichier texte et qu'on le renomme en .jpg, mon script va croire que c'est une image alors que c'est enfaite un fichier texte et le reste de mon script, va donc planter.
    Comment tester si c'est bien une image et de bon type.

    Merci d'avance pour vos réponses.

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 320
    Points
    16 320
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES['image']['type']

  3. #3
    Membre du Club Avatar de snyfir
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 246
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES['image']['type']
    Sa marche pas mieux. J'ai fait un echo de $_FILES['image']['type']. Si je prend un fichier texte et que je le renome en .gif j'obtien avec $_FILES['image']['type'] :
    image/gif

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Points : 47
    Points
    47
    Par défaut
    getimagesize est une solution simple dans le cas des images, elle renvoie faux si ce n'en est pas une. Probablement pas 100% fiable ceci dit.

  6. #6
    Membre du Club Avatar de snyfir
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 246
    Points : 56
    Points
    56
    Par défaut
    Merci pour votre aide. Enfaite j'ai opté pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
            if ($extension_upload == 'jpg' OR $extension_upload == 'jpeg') {
                if (!@imagecreatefromjpeg($data['tmp_name'])) {
                    $this->error(_LANG_FAVOURITECLASS_IMAGE_NO_VALID);
                    return false;
                }
            } else if ($extension_upload == 'png') {
                if (!@imagecreatefrompng($data['tmp_name'])) {
                    $this->error(_LANG_FAVOURITECLASS_IMAGE_NO_VALID);
                    return false;
                }
            } else if ($extension_upload == 'gif') {
                if (!@imagecreatefromgif($data['tmp_name'])) {
                    $this->error(_LANG_FAVOURITECLASS_IMAGE_NO_VALID);
                    return false;
                }
            } else {
                $this->error(_LANG_FAVOURITECLASS_IMAGE_EXTENSION_INVALID);
                return false;
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tester l'extension d'une image
    Par hechter16 dans le forum Langage
    Réponses: 6
    Dernier message: 02/04/2008, 15h32
  2. Réponses: 5
    Dernier message: 21/02/2007, 11h47
  3. Verifier l'extension d'une image
    Par java_ma dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/02/2007, 16h51
  4. tester si le résultat d'une requete est vide
    Par monstour dans le forum ASP
    Réponses: 13
    Dernier message: 04/10/2006, 14h14
  5. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo