0

EMPPhotosSQL 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

よろしくお願いいたします。

4

1 に答える 1

2

を変更しますContentType

から:

context.Response.ContentType = "text/bmp"

に:

context.Response.ContentType = "image/bmp"
于 2013-08-30T15:40:30.243 に答える