Bonjour, je souhaite afficher lorsque je clique sur un lien, une image qui est stocké en base de donnée.
Peut-on faire cela simplement car j'ai vu des exemples c'est assez compliqué je trouve.
Bonjour, je souhaite afficher lorsque je clique sur un lien, une image qui est stocké en base de donnée.
Peut-on faire cela simplement car j'ai vu des exemples c'est assez compliqué je trouve.
Tu peux pas faire tout simplement un lien du style :
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href='<% Eval("Trucmuche") %>' runat = server>lien</a>
EDIT: oups je crois que j'ai mal compris la question. C'est ton image que tu stockes pas le lien vers l'image pas vrai ?
c'est 100% pareil qu'un champ.
Sauf que c'est stocké sous forme de byte[], qu'il suffit de convertir en image. SAUF que, tu dois stocker l'image quelque part avant de l'afficher ou alors, utiliser un handler ashx qui se charge d'afficher l'image.
En gros, tu fais dans ta page aspx des
<img src="getImage.ashx?idImage=1" />
et la page getImage.ashx fait la connexion à la base, lis le tableau de bytes via un simple Select champ From matable, et puis tu fais Response.BinaryWrite(valeur-de-la-base). En envoyant le bon code mime de l'image.
ca parait complexe mais ca ne l'est pas. Mais c'est la même chose pour les images, vidéos, fichiers, etc stockés en base, donc il te faut comprendre le principe quitte à lire et relire les tutos![]()
Un moyen tres simple de faire cela avec cette fonction (ecrite en VB.NET parce que je fais du VB mais facilement traduisible en C#):
avec Page la page, data ton image, type le type de fichier, length la taille, filename le nom du fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Public Sub DeliverFile(ByVal Page As Page, ByVal Data() As Byte, ByVal Type As String, ByVal Length As Integer, Optional ByVal FileName As String = "") With Page.Response .Clear() .ContentType = Type If FileName <> "" Then Page.Response.AddHeader("content-disposition", "filename=" & FileName) End If .OutputStream.Write(Data, 0, Length) .End() End With End Sub
Ta page ne contiendra alors que l'image, je ne sais pas si ca correspond a tes attentes.
ok, merci bien je pense que je vais trouver mon bonheur avec ce qui m'a été donné.
Merci
Partager