Ich arbeite an einer einfachen Bild-Tagging-und Such-App. Ich habe meine Bilder hochgeladen in die DB, die Tags werden angewendet, aber scheitern, wenn ich sie zurückziehe - die Bilder werden nicht gerendert.Verwenden eines Handlers zum Rendern eines Bilds aus einem Blob auf einer ASP.NET-Seite. Ich kann es nicht bekommen
Ich fand this hier auf SO, aber ich bin nicht in der Lage, es zum Funktionieren zu bringen.
Ich denke, ich missverstanden vielleicht Handler.
Kurz gesagt, ich erstelle ein ASP: Image, indem ich seine imageurl auf den Handler mit der ID des Fotos setze und dieses Steuerelement dann einem ASP: Placeholder hinzufüge.
Wenn die Seite rendert, bekomme ich, in IE, das kleine rote x keine Bildsache, und in FF nichts.
Eine Sache, die mich denken lässt, dass ich etwas vermisse, ist, dass ein Breakpoint in meinem Handler-Code nie getroffen wird. Es wird also sogar ausgeführt. Recht?
Wer weiß, was ich hier falsch mache? Vielen Dank.
Hier ist mein 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
und wo ich es in meinem Platzhalter
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
Ga! Ich bin ein totaler Nubcaeks (Entschuldigung, der Satz macht mich kaputt). Ich schrieb nichts in die DB - in meinem Upload habe ich nur die Größe des Bytes() eingestellt und es leer hochgeladen. Danke, Mann! – aape