Afficher une image provenant d’une base de données
- Par: jack
- Le: 10.03.2009 20:05:34
- Dans: Active Server Page
Il faut préciser dans ce fichier quel type de contenu doit être envoyé au navigateur avec la propriété ContentType de l'objet Response et écrire les données binaires avec la méthode BinaryWrite de ce même objet.
Par exemple, on possède une table images avec les colonnes suivantes :
- id_image entier auto_incrémenté => permet d'identifier de façon unique une image
- bin_image blob => va contenir les données binaires de l'image
- type_image texte => va contenir le type de l'image (image/gif, image/jpeg, image/png)
La procédure d'affichage va s'effectuer dans 2 fichiers :
Le premier fichier est le document affiché à l'écran et le deuxième s'occupe du renvoi de l'image au document.
document.asp
<html>
<head>
...
</head>
<body>
...
<img src="show_image.asp?idimage=5">
...
</body>
</html>
On va ensuite récupérer le paramètre idimage dans le fichier show_image.asp grâce à la collection QueryString de l'objet Response.
show_image.asp
<%
' récupération du paramètre
idimage_get = Request.QueryString("idimage")
' création de la connexion à la base de données
Set conn = Server.CreateObject("ADODB.Connection")
' ouverture de la connexion
conn.Open chainedeconnexion ' chainedeconnexion est à préciser suivant votre sgbd et nom de base
' création de la requête
requete = "SELECT type_image, bin_image FROM images WHERE idimage=" & idimage_get
' exécution de la requête
Set rs = conn.Execute(requete)
' positionnement du content-type
Response.ContentType = rs("type_image")
' écriture du contenu du champ blob
Response.BinaryWrite(rs("bin_image"))
' fermeture et destruction de la connexion
conn.close
Set conn = Nothing
%>