I'm working on a simple image tagging and searching app. I've got my images uploading to the DB, the tags being applied, but am failing when I pull them back - the images don't render.
I found this here on SO, but I'm not able to get it working.
I think I am perhaps misunderstanding handlers.
In short, in the code behind, I'm creating an ASP:Image, setting its imageurl to the handler with the id of the photo, and then adding that control to an ASP:Placeholder.
When the page renders, I get, in IE, that little red x no image thing, and in FF, nothing.
One thing that gets me thinking I'm missing something is that a breakpoint in my handler code is never hit. So it's even getting executed. Right?
Anyone know what I'm doing wrong here? Thanks.
Here's my handler
Imports aapeClsLib
Imports System.Web
Imports System.Web.Services
Public Class photos
Implements System.Web.IHttpHandler
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim img As Byte() = getImage(context.Request.QueryString("ID"))
context.Response.Clear()
context.Response.ContentType = "image/jpeg"
context.Response.BinaryWrite(img)
context.Response.End()
End Sub
ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
Private Function getImage(ByVal id As String) As Byte()
Dim img As Byte()
Dim strSql As String = "select ph_photo from photos where ph_id = " & id
Dim dt As DataTable = sqLiteData.getDataTable(strSql)
img = CType(dt.Rows(0)(0), Byte())
Return img
End Function
End Class
and where I'm sticking it in my placeholder
Private Sub insertPhotos(ByVal dt As DataTable)
For Each row As DataRow In dt.Rows
Dim img As New Image
img.ImageUrl = "photos.ashx?ID=" & row(0)
PlaceHolder1.Controls.Add(img)
Next
End Sub