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 :

File.Exists (C#) - Retrouver le chemin d'une image.


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut File.Exists (C#) - Retrouver le chemin d'une image.
    Bonjour, pour commencer voici mon code :
    le fichier ascx est Components/ProductPromo.ascx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:Image ID="Image2" ImageUrl='<%# ImageExistante(Eval("ImageSecondary")) %>' runat="server"
                                    ToolTip='<% Eval("Name") %>' AlternateText='<% Eval("Name") %>' Style="position: absolute;" />
    le fichier ascx.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected object ImageExistante(object url)
        {
            String url2 = "http://www.nomdusite.com/" + url;
            String url3 = "../" + url;
            if (File.Exists(url.ToString()))
                return "../" + Eval("ImageSecondary");
            if (File.Exists(url2))
                return "../" + Eval("ImageSecondary");
            if (File.Exists(url3))
                return "../" + Eval("ImageSecondary");
            else
                return "../Images/Design/DefaultNoImage.jpg";
        }
    Mais à chaque fois ça passe dans le else, alors que quand je met dans la page "../" + Eval("ImageSecondary"), il m'affiche correctement l'image, mais là pas moyen de rentrer dans un des if, comment dois-je m'y prendre?

    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 : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    A vue de nez, je dirais que File.Exists attend un chemin local et non une url

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    En effet, j'ai fais ainsi et ça marche très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    HttpWebRequest request = null;
            HttpWebResponse response = null;
     
            try
            {
                request = (HttpWebRequest)WebRequest.Create("http://www.ordiplus.be/" + url);
                response = (HttpWebResponse)request.GetResponse();
     
                return "../" + Eval("ImageSecondary");
            }
            catch
            {
                return "../Images/Design/DefaultNoImage.jpg";
            }

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par Nadiya Voir le message
    En effet, j'ai fais ainsi et ça marche très bien :
    Peut être mais c'est méga crade ...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    Je n'ai rien trouvé de mieux :s, ce code venait d'ici.

  6. #6
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    tu dois tester la présence d'image sur ton site ou sur un site externe?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    Oui, c'est sur mon site.

  8. #8
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Alors quel besoin as tu de passer par une Url... Regarde du cote de server.mappath. Cela prend une url et te renvoie le chemin physique associé. Comme cela ensuite tu testes ton chemin avec file.exists.

    Parce que la c'est vraiment pas bon ce que tu fais...

    Autre chose , fais moi plaisir et si tu joues avec des string dans un fonction met string et pas object dans la déclaration de ta fonction...


    bon code à toi, a++

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    Alors quel besoin as tu de passer par une Url... Regarde du cote de server.mappath. Cela prend une url et te renvoie le chemin physique associé. Comme cela ensuite tu testes ton chemin avec file.exists.

    Parce que la c'est vraiment pas bon ce que tu fais...

    Autre chose , fais moi plaisir et si tu joues avec des string dans un fonction met string et pas object dans la déclaration de ta fonction...
    Je savais pas comment faire d'autre, c'est pour ça :s

    Et j'ai remarqué que c'était pas bon du tout, le serveur ne suivait pas :s :s :s

    Par contre, si je met String au lieu de object, j'ai l'erreur
    Impossible de convertir de object en string.
    Je fais ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:Image ID="Image2" ImageUrl='<%# ImageExistante(Eval("ImageSecondary")) %>' runat="server"
                            ToolTip='<%# Eval("Name") %>' AlternateText='<%# Eval("Name") %>' Style="position: absolute;" />
    Et en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected object ImageExistante(object url)
        {
            if (File.Exists(Server.MapPath("" + url)))
                return "../" + Eval("ImageSecondary");
            else
                return "../Images/Design/DefaultNoImage.jpg";
        }
    ça marche

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    Moi qui croyait mon problème résolu, et ben il ne l'est pas, en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:Image ID="Image2" ImageUrl='<%# ImageExistante(Eval("ImageSecondary")) %>' runat="server"
                            ToolTip='<%# Eval("Name") %>' AlternateText='<%# Eval("Name") %>' Style="position: absolute;" />
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected object ImageExistante(object url)
        {
            if (File.Exists(Server.MapPath("" + url)))
                return "../" + Eval("ImageSecondary");
            else
                return "../Images/Design/DefaultNoImage.jpg";
        }
    Le serveur est surchargé au niveau de w3wp.exe qui atteint 50% quand un bot viens sur le site, et atteins 99% la deuxième fois, il fallait à chaque fois tuer le processus :s.
    Donc en conclusion, retour à la case départ...

Discussions similaires

  1. Retrouver le chemin d'une image
    Par le_sayan dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 14/03/2011, 10h54
  2. [access2003/VBA] Retrouver le chemin d'une base de donnée
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 6
    Dernier message: 21/07/2008, 16h13
  3. Réponses: 4
    Dernier message: 19/04/2006, 14h19
  4. Récupération du chemin d'une image
    Par kurul1 dans le forum C++Builder
    Réponses: 5
    Dernier message: 26/09/2005, 10h40
  5. Réponses: 3
    Dernier message: 31/08/2005, 17h52

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