Je nutné si uvědomit, že obrázek do HTML stránky dostanete přes vložení značky
<img src="adresa obrázku" alt="popis" />
. Jiné spolehlivé a obecně používané řešení není. Pokud neznáte HTML, naučte se ho, jinak nemá cenu s ASP.NET pracovat. Zjistěte si také, co je to HTTP a Content Type, pokud to nevíte, tohle jsou základní věci. Většina článků a materiálů předpokládá jejich znalost. Pokud se tedy prokousáme tímhle, dojde nám, že bajty obrázku nemůžeme poslat do stránky s tabulkou, ale musíme vytvořit speciální stránku, které řekneme, jaký obrázek chceme, a ona nám ho pošle. Tuto speciální stránku je velmi vhodné koncipovat jako handler, tj. jednoduchá třída, které dostane požadavek a vystaví na něj odpověď. Do projektu si tedy přidáte položku typu Generic Handler a do metody ProcessRequest napíšete něco takového:
'vytáhnout informace o příloze
Using con As New SqlConnection(ConfigurationManager.ConnectionStrings("DB").ConnectionString)
Using com As New SqlCommand("SELECT Obrazek FROM Uzivatele WHERE id = @iduziv", con)
com.Parameters.AddWithValue("iduziv", Request.QueryString("id")) 'do dotazu dosadit jako hodnotu parametru iduziv hodnotu parametru id z URL
con.Open()
Dim r As SqlDataReader = com.ExecuteReader() 'spustit dotaz
If r.Read() Then 'pokud je vrácen výsledek
'nastavit hlavičky
context.Response.ContentType = "image/jpeg"
'poslat data
Dim bajty() As Byte = r("Obrazek")
context.Response.OutputStream.Write(bajty, 0, bajty.Length)
Else 'obrázek nenalezen
Throw New HttpException(404, "Not found")
End If
con.Close()
End Using
End Using
Píšu to z hlavy, snad to bude správně.
|