vb.net использует обработчик ashx для получения изображения с SQL Server

У меня есть изображения сотрудников, хранящиеся в моей таблице EMPPhotos на SQL Server 2008 R2 в типе данных image. Я создал общий обработчик, чтобы получить изображение из таблицы и отправить его на страницу. Это не работает. Я проверил сам запрос, и я получаю данные.

Обработчик:

<%@ WebHandler Language="VB" Class="EmpImageHandler" %>

Imports System
Imports System.Web
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient

Public Class EmpImageHandler : Implements IHttpHandler

    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        'context.Response.ContentType = "text/bmp"
        'context.Response.Write("Hello World")

        context.Response.ContentType = "text/bmp"
        Dim img As Image = GetImage(context.Request.QueryString("id"))
        img.Save(context.Response.OutputStream, ImageFormat.Bmp)
    End Sub

    Private Function GetImage(inID As Long) As Image
        Dim ms As MemoryStream = New MemoryStream

        Dim cnSTR As New clsConnections
        Dim cn As New SqlConnection(cnSTR.ConnectToDB("AgencyStaff"))
        Try
            cn.Open()
        Catch ex As Exception

        End Try
        Dim ssql As String = "Select BMPPhoto From EMPPhotos where empid = " & inID
        Dim CMD As SqlCommand = New SqlCommand(ssql, cn)
        Dim dr As SqlDataReader = CMD.ExecuteReader
        dr.Read()
        Dim img() As Byte = CType(dr("BMPPhoto"), Byte())
        ms = New MemoryStream(img, False)
        Return Image.FromStream(ms)
    End Function

    Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return True
        End Get
    End Property

End Class

Заранее спасибо за вашу помощь.


person Rob Waibel    schedule 30.08.2013    source источник


Ответы (1)


Измените свой ContentType.

От:

context.Response.ContentType = "text/bmp"

To:

context.Response.ContentType = "image/bmp"
person Karl Anderson    schedule 30.08.2013