データベースの画像を ASP.NET Web ページに表示しようとしています。ジェネリック ハンドラー .aspx と .ashx を使用しています。表示しようとしましたが、実行するたびに壊れた画像のアイコンが表示されます。
以下は私の.ashxコードです:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.IO;
using System.Configuration;
using MySql.Data.MySqlClient;
namespace test
{
/// <summary>
/// Summary description for HandlerImage
/// </summary>
public class HandlerImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string connection = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
using (var conn = new MySqlConnection(connection))
{
using (var comm = new MySqlCommand("SELECT FileId, [FileName], ContentType, Data FROM files WHERE FileId=16", conn))
{
using (var da = new MySqlDataAdapter(comm))
{
var dt = new DataTable();
conn.Open();
da.Fill(dt);
conn.Close();
byte[] Data = (byte[])dt.Rows[0][3];
context.Response.ContentType = "image/jpeg";
context.Response.ContentType = "image/jpg";
context.Response.ContentType = "image/png";
context.Response.ContentType = "application/pdf";
context.Response.BinaryWrite(Data);
context.Response.Flush();
}
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
以下は私の.aspxコードです:
<div>
<asp:Image ID="Image1" runat="server" ImageUrl="HandlerImage.ashx?FileId=2" Width="200" Height="200"/>
</div>
どんな助けでも大歓迎です。