私は単純な画像タグ付けおよび検索アプリに取り組んでいます。画像を DB にアップロードし、タグを適用しましたが、それらを引き戻すと失敗します - 画像がレンダリングされません。
SOでこれを見つけましたが、動作させることができません。
おそらくハンドラーを誤解していると思います。
つまり、コード ビハインドでは、ASP:Image を作成し、その imageurl を写真の ID を持つハンドラーに設定してから、そのコントロールを ASP:Placeholder に追加しています。
ページがレンダリングされると、IE では小さな赤い x 画像が表示されず、FF では何も表示されません。
何かが足りないと思わせる原因の 1 つは、ハンドラー コードのブレークポイントがヒットしないことです。そのため、実行されることさえあります。右?
ここで私が間違っていることを知っている人はいますか?ありがとう。
これが私のハンドラーです
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