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

ASP.NET Discussion :

Extension d'une image


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Par défaut Extension d'une image
    Je dois bloquer l'upload des images qui sont pas en gif ou jpg. Comment on fait pour savoir si l'image que j'ai est un gif ou un jpg? Comment on peut récupérer une extension dans un nom de fichier?

    Je dois ausi bloquer l'upload des images trop lourde. Comment je fais pour connaitre combien pèse une image?

    Merci!

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Faudrait voir du coté du javascript

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Par défaut
    Ok et comment j'intègre le javascript? Parce que mon image vient d'un bouton "Parcourir" donc tout le code est en code-behind et faudrait que je mette le javascript en plein milieu mais je crois que c'est pas possible ca, alors comment je peux faire?

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Par défaut
    Je l'ai fait avec ".Contains" finalement. Reste a savoir comment faire pour le poid de l'image. J'ai trouvé en php, mais en vb,net, rien pour le moment...

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Pour avoir des informations sur un fichier, il faut utiliser la classe FileInfo de System.IO qui permet entre autre de connaître la taille du fichier. Bien entendu, se baser uniquement sur le nom du fichier est une faille de sécurité : il est possible de renommer un fichier qui n'est pas une image en JPG/GIF. En fonction du code qui manipule ces images, il est alors possible d'exécuter sur le serveur ou le client du code pirate.

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Par défaut
    D'accord, et si je dois pas me fier a l'extension je fais comment?

    Et y'a quelque chose que je saisis pas avec .length, c'est supposé me donner le poids en byte, qui je crois est l'équivalant anglais d'octet. Sauf que mon image pèse 30 000 octets et length me dit 20 bytes. Y'a comme un truc qui cloche.

  7. #7
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Par défaut
    Bonsoir

    Pour avoir des informations sur un fichier, il faut utiliser la classe FileInfo de System.IO qui permet entre autre de connaître la taille du fichier. Bien entendu, se baser uniquement sur le nom du fichier est une faille de sécurité : il est possible de renommer un fichier qui n'est pas une image en JPG/GIF. En fonction du code qui manipule ces images, il est alors possible d'exécuter sur le serveur ou le client du code pirate.
    Je serais curieux de connaître quel genre de code .net, avec extension gif/jpg, pourrait feinter IIS -> puis s'intégrer à la configuration web.config d'un site -> puis s'executer sur le serveur et le hacker sans connaître l'arborescense, les bases de données .... Ensuite que le serveur éventuellement envoi un code javascript pirate standalone qui hack le client... Tout ça avec un site non compilé quand même Pas facile...

    Si ça t'arrive c'est que tu as un client fou furieux qui t'en veut vraiment

    Plus sérieusement, aprés plusieurs essais avec "Lenght" j'ai bien la taille réelle du fichier. Mais comment fais tu pour utiliser IO.fileInfo alors que tu n'as pas encore télécharger le fichier? (si j'ai bien compris )

    Bon sinon voilà un bout de code qui peut aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
            Dim test As Int32 = FileUpload1.FileContent.Length
            test = FileUpload1.PostedFile.ContentLength
            test = FileUpload1.FileBytes.Length
    ...
    Aprés essais avec un fichier de 8450 octets, j'obtiens biens 8450 sur les trois propriétés. (Attention que si tu regardes la taille du fichier sur ton pc la taille sur le disque est bien supérieure à la taille réelle du fichier )

    A suivre

  8. #8
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par mafyoso Voir le message
    Plus sérieusement, aprés plusieurs essais avec "Lenght" j'ai bien la taille réelle du fichier. Mais comment fais tu pour utiliser IO.fileInfo alors que tu n'as pas encore télécharger le fichier? (si j'ai bien compris )
    Tu peux pas

  9. #9
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim test As Int32 = FileUpload1.FileContent.Length
            test = FileUpload1.PostedFile.ContentLength
            test = FileUpload1.FileBytes.Length
    Merci Mafyoso! En fait c'était une tite erreur de syntaxe. La ca marche très bien!

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

Discussions similaires

  1. Tester si l'extension d'une image est valide
    Par snyfir dans le forum Langage
    Réponses: 5
    Dernier message: 03/08/2008, 19h32
  2. recupérer le nom de l'extension d'une image
    Par benyamin dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 06/05/2008, 14h25
  3. tester l'extension d'une image
    Par hechter16 dans le forum Langage
    Réponses: 6
    Dernier message: 02/04/2008, 15h32
  4. Réponses: 5
    Dernier message: 21/02/2007, 11h47
  5. Verifier l'extension d'une image
    Par java_ma dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/02/2007, 16h51

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