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 :

Reconnaissance d'extension avec $_FILES['']['type']


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut Reconnaissance d'extension avec $_FILES['']['type']
    Bonjour,
    je désire uploader des image par un formulaire, le probleme est que le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //liste des extensions possibles    
    				$extensions = array('/png', '/gif', '/jpg', '/jpeg', '/JPG');
    				//récupère la chaîne à partir du dernier / pour connaître l'extension
    				echo "<br> type :".$_FILES['image']['type'];
    				$extension = $_FILES['image']['type'];
    				echo "ext : ".$extension;
    				//vérifie si l'extension est dans notre tableau            
    				if(!in_array($extension, $extensions))
    					echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
    				else
    ou le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $extension = strrchr($_FILES['image']['type'], '/');
    ne reconnaisse pas les extention de photo numérique, c'est a dire que j'ai des photo qui sorte d'un appareil photo numérique qui sont .jpg, il l'extension n'est pas reconnu.
    J'ai comme message l'erreur que j'ai codé en cas de non reconnaissance d'extension " pas la bonne extension". Je sais que la véritable extension est codé dans l'image, le code MIME, m'en je n'en sais pas plus.
    Certe je pourrait faire ceci pour contourner le probleme et recuperer seulement l'extention du nom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((substr($nom_file, -3) == 'jpg') OR	(substr($nom_file, -3) == 'gif') OR	(substr($nom_file, -4) == 'jpeg') OR (substr($nom_file, -3) == 'png') OR (substr($nom_file, -3) == 'JPG') OR (substr($nom_file, -3) == 'GIF') OR (substr($nom_file, -4) == 'JPEG') OR (substr($nom_file, -3) == 'PNG')) {
    mais cela n'est pas sécurisé du tout on peux facilement rentrer d'autre fichier.

    Pouvez vous m'aider ?

    Merci d'avance

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    il ne faut pas faire confiance à la valeur $_FILES[...]['type'], elle est envoyée par le client
    pour tester si le fichier est une image, tu peux essayer la fonction http://php.net/getimagesize

Discussions similaires

  1. [héritage] cast avec le type de base
    Par Lere dans le forum C++
    Réponses: 6
    Dernier message: 16/09/2004, 18h21
  2. Réponses: 2
    Dernier message: 30/08/2004, 14h48
  3. [Débutant][Phppgadmin] problème avec les types
    Par PoY dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/08/2004, 17h06
  4. utilisation de "LIKE" avec un type datetime dans r
    Par ericmart dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/11/2003, 14h58
  5. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48

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