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 :

Gestion des images en UpLoad


Sujet :

ASP.NET

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Gestion des images en UpLoad
    Bonjour tout le monde

    J'ai mis en place un contrôle Upload pour envoyer des images sur mes sites.
    Dans le code j'ai mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If fileUp.PostedFile.ContentType = "image/pjpeg" Then
    Mais certains fichier, pourtna au format JPG, ne passe pas.
    J'ai cherché à comprendre mais je vois pas. Les origines des fichiers sont de différents horizons (Net, Appareil numérique, Webcam, ...) donc visiblement pas de raisons de ce côté là.

    Alors je cherche à ouvrir nu peu plus le champ et accepter tous les fichiers Image, mais comment les reconnaitre ?
    Parce que je ne voudrais pas qu'un petit malin me colle un executable ou une autre joyeuseté du genre.

    Vous avez une idée ?

  2. #2
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Alors petite précision que j'ai fini par découvrir par hasard :
    une image JPG en transfert chez un copain avec FF : ça bloque
    la même chez moi avec IE 88, ça passe ! ! !

    Alors question : FF aurait il un format JPG différent de IE ?
    Je sais la question est con, mais j'en vois pas d'autre pour l'instant
    D'autan que le pote en question à enfin compris qu'il vallait mieux revenir sur IE et là, ça passe, donc on peut même incriminer l'OS.

    Avez vous une idée ?

  3. #3
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    le P en trop ici sinon tester directement sur l'extension du fichier envoyé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    using System.IO;
     
    if Path.GetExtension(fileUp.FileName).ToLower()="jpg" then

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.

    En enlevant le "p" cela ne fonctionne plus sur IE. J'attend un test sur FF, pour être tranquille j'ai fait un IF avec un OR sur les deux.

    Le test sur l'extension je l'ai écarté depuis le départ. Certes, cela serait plus simple mais cela permettrait à un petit malin de mettre un exécutable avec une extension autorisée et de faire des bétises ensuite ! ! !

    C'est pour ça que j'aimerais bien trouver un "format" dans le text conditionnel qui représenterait une image, tout simplement.
    Pour l'instant je m'interdis le GIF et le PNG, aps trés grave, c'es tpour charge des photos, mais le jour où je veux du GIF pour que les gens chargent des dessins, ben ça bloque.

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    le type MIME comme l'extension d'un fichier peuvent nous mentir

    pour tester le type du contenu réel du fichier image utiliser un objet Image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim img as System.Drawing.Image
    img = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream)
    puis tester la proriete RawFormat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if img.RawFormat.Guid = System.Drawing.Imaging.ImageFormat.Jpeg.Guid then ...
    pour récupérer le type MIME exact d'une image j'ai trouvé avec une petite recherche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // if you want to return the type of the image, try this:
     
        public static string MimeType(System.Drawing.Image imgPhoto)
        {
            foreach (ImageCodecInfo codec in ImageCodecInfo.GetImageDecoders())
            {
                if (codec.FormatID == imgPhoto.RawFormat.Guid)
                    return codec.MimeType;
            }
            return "image/unknown";
        }
    code en c# mais cela ne posera pas de souci pour traduire en vb

    bon courage

  6. #6
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Pourtant j'avais confiance dans le type MIME, comme quoi, faut ce méfier de certains types .....

    En tout cas merci, un grand merci pour ton aide, tu solutionne deux problèmes d'un coup.

    J'ai bricolé un truc avec le test que tu propose, j'ai rajouter un petit Try Catch parce que ça me plantait un message technique lorsque le fichier n'était pas un JPG.

    Bref, ça marche super bien. Et en plus j'ai dcouvert un autre problème, c'est génial. Mais j'ouvrirai un topic plus tard, parce que c'est super complexe. Sur les photos qui sont uploadé je rajoute une filigranne et sur le GIF il veut pas !
    Mais c'est pas grave, je limite au JPG, c'est tout.



    Citation Envoyé par nsanabi Voir le message

    code en c# mais cela ne posera pas de souci pour traduire en vb

    bon courage
    hum, hum, pas de souci ! !
    Ben j'ai arrêté de luter à la troisième ligne !
    Je ne parle pas un brock de C#. Parfois j'arrive à suivre, mais là, ça fait appel à des notions qiu m'échappe.

    Pas grave, je crois que je n'ai pas besoins d'aller jusque là.

    Encore merci

  7. #7
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Je ne parle pas un brock de C#.
    je te fais alors la traduction sans souci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Imports System.Drawing.Imaging
     
        Public Function MimeType(ByVal imgPhoto As System.Drawing.Image) As String
            For Each codec As ImageCodecInfo In ImageCodecInfo.GetImageDecoders()
                If codec.FormatID = imgPhoto.RawFormat.Guid Then
                    Return codec.MimeType
                End If
            Next
            Return "image/unknown"
        End Function
    bon courage

  8. #8
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour la traduction.

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

Discussions similaires

  1. [Upload] Perdu dans la gestion des images
    Par thewaawshow dans le forum Langage
    Réponses: 9
    Dernier message: 19/09/2007, 14h32
  2. Classe de gestion des images
    Par tlemcenvisit dans le forum MFC
    Réponses: 2
    Dernier message: 03/05/2005, 19h07
  3. Class de gestion des images avec rotation
    Par Johnny Boy dans le forum MFC
    Réponses: 1
    Dernier message: 03/05/2005, 11h54
  4. [TP]Gestion des images bmp avec BMP.TPU
    Par Gabi dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 14/05/2004, 23h20

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