Afficher une image d'une base de données sur une page web
Bonjour, j'ai des images stocké dans SQlServer en type image soit en donnée binaire et je voudrais restituer ces images de la base dans un objet
<asp:Image id="imglogo" runat="server"> est ce que quelqu'un sait comment faire cela.
Merci pour votre aide
Idée précédente + utilisation d'un gestionnaire générique
Il est intéressant de reprendre la suggestion précédente en créant un gestionnaire générique appelé par exemple SqlImage.ashx.
Ce gestionnaire prendrait en paramètres d'entrée en querystring les infos nécessaires pour retrouver l'image dans la base. Ce pourrait être par exemple un ID... Bref, à voir selon les besoins.
Ainsi, l'url d'une image serait par exemple :
Code:
http://www.monsite.com/SqlImage.ashx?id=12541
Du coup, cette url peut être utilisée directement dans une balise serveur
Code:
<asp:Image id="imglogo" runat="server" ImageUrl="http://www.monsite.com/SqlImage.ashx?id=12541"/>
Ou encore via du code (suite à un click bouton par exemple)
Code:
imgLogo.ImageUrl = "http://www.monsite.com/SqlImage.ashx?id=12541" + id.ToString();
Il suffit de coder la méthode ProcessRequest du gestionnaire.
1) Connexion à la base
2) Requête SQL
3) Renvoyer le tout via context.Response
4) Penser à définir context.Response.ContentType
Cela fonctionne très bien et c'est super pratique. On peut ainsi écrire des gestionnaires pour récupérer des images en provenance de toutes sortes de sources. En plus, pourquoi pas rajoutrer à la volée les copyrights sur l'image !!! Si on pense à gérer le cache on peut aussi optimiser les traitements serveur.
Bon courage.