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 :

Afficher une image dans un repeater


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 101
    Par défaut Afficher une image dans un repeater
    Bonjour
    j'ai des images stockées dans ma base de données avec le type "image" et je veux les afficher dans un repeater
    si quelqu'un sait comment faire je lui serait tres reconnaissant
    merci beaucoup

    j'ai ce code la mais ça n'affiche rien , le lien avec le datasource est bon j'ai juste le probleme : comment afficher directement une image sans l'avoir sur le disque c'est à dire directement de la base de données.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <asp:Repeater ID="rImage" runat="server"  
                    EnableViewState="false" >
                    <HeaderTemplate>
                    Apercu de l'image<br />
                    </HeaderTemplate>
                    <ItemTemplate>                 
                    <%# Eval("image")%>
                    </ItemTemplate>
                </asp:Repeater>

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    quand tu dis que c'est stockée en BD, c'est l'url ou bien l'image en binaire ?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 101
    Par défaut
    oui dsl c l'image en binaire

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    tu peux utiliser un httphandler.

    exemple pour lire une image depuis le server (ok, c'est con, mais c'est pour l'exemple, la lecture peut se faire depuis une BD ensuite)

    déclaration du handler dans le web.config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          <httpHandlers>
            <add verb="*" path="displayimg" type="demoImgFromMemory.HttpHandlerImage,demoImgFromMemory"/>
          </httpHandlers>
    Handler :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    using System;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Web;
     
    namespace demoImgFromMemory
    {
        public class HttpHandlerImage : IHttpHandler
        {
            public void ProcessRequest(HttpContext context)
            {
                HttpRequest request = context.Request;
                HttpServerUtility server = context.Server;
     
                string file = request.QueryString["file"];
                string filePath = server.MapPath(file);
                if (!string.IsNullOrEmpty(file) && File.Exists(filePath))
                {
                    System.Drawing.Image img = System.Drawing.Image.FromFile(filePath);
                    string contentType;
                    ImageFormat format;
                    switch(Path.GetExtension(file).ToUpper())
                    {
                        case ".GIF":
                            contentType = "image/gif";
                            format = ImageFormat.Gif;
                            break;
                        case ".JPG":
                            contentType = "image/jpeg";
                            format = ImageFormat.Jpeg;
                            break;
                        case ".PNG":
                            contentType = "image/png";
                            format = ImageFormat.Png;
                            break;
                        case ".BMP":
                            contentType = "image/bmp";
                            format = ImageFormat.Bmp;
                            break;
                        default:
                            throw new NotSupportedException("Type d'image non reconnu");
                    }
                    context.Response.ContentType = contentType;
                    img.Save(context.Response.OutputStream, format);
                }
                else
                {
                    context.Response.StatusCode = 404;
                }
            }
     
            public bool IsReusable
            {
                get { return true; }
            }
        }
    }
    fichier aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="displayimg?file=img.jpg" />

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 101
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     img.Save(context.Response.OutputStream, format);
    ça va afficher l'image dans une nvlle page.
    alors que moi je veux quant je clique sur un bouton l'image s'affiche dans un composant que ce soit repeater ou asp:image ....

    merci

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    qu'est-ce qui te fait penser que ca va afficher l'image dans une nouvelle page ?

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 101
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    byte[] image = (byte[])myCommand.ExecuteScalar();
     
            //On place l'image dans un fichier temporaire
            MemoryStream stream = new MemoryStream();
            stream.Write(image, 0, image.Length);
            Bitmap bitmap = new Bitmap(stream);
     
            Response.ContentType = "image/gif";
     
            //Affichage de l'image
     
            bitmap.Save (Response.OutputStream,ImageFormat.Gif);
    voila mon code que j'ai mis dans le bouton,donc quand je clique ça m affiche limage dans une page suivante(comme si j'ai cliqué sur un lien)

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    je me demande où est-ce que j'ai fait un truc comme ca ...

    Je t'ai parlé de HttpHandler

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 101
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    img.Save(context.Response.OutputStream, format);

    dans le code du handler

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    et donc, ca n'a rien à faire dans le click dans bouton ...

Discussions similaires

  1. Afficher une image dans un état
    Par Invité1 dans le forum IHM
    Réponses: 8
    Dernier message: 23/09/2009, 14h59
  2. [MFC]Afficher une image dans un Picture
    Par Cirdan Telemnar dans le forum MFC
    Réponses: 3
    Dernier message: 24/04/2006, 16h40
  3. comment afficher une image dans un jpanel ?
    Par 180degrés dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 18/04/2006, 15h33
  4. Afficher une image dans un état
    Par louis_figos dans le forum IHM
    Réponses: 5
    Dernier message: 09/03/2006, 11h09
  5. Besoin d'aide pour afficher une image dans un applet
    Par argon dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 19/01/2006, 19h45

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