Я работаю над простым приложением для добавления тегов к изображениям и поиска. Мои изображения загружаются в БД, теги применяются, но я не могу их вернуть - изображения не отображаются.
Я нашел это здесь, на SO, но я ' м не могу заставить его работать.
Я думаю, что я, возможно, неправильно понимаю обработчиков.
Короче говоря, в коде позади я создаю ASP: Image, устанавливаю его imageurl для обработчика с идентификатором фотографии, а затем добавляю этот элемент управления в ASP: Placeholder.
Когда страница отображается, я получаю в IE этот маленький красный значок x без изображения, а в FF - ничего.
Одна вещь, которая заставляет меня думать, что я чего-то упускаю, - это то, что точка останова в моем коде обработчика никогда не срабатывает. Так что его даже казнят. Правильно?
Кто-нибудь знает, что я здесь делаю не так? Спасибо.
Вот мой куратор
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
и куда я его вставляю в свой заполнитель
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