Я пытаюсь использовать универсальный обработчик для извлечения и отображения изображений, хранящихся в базе данных.
Но это просто не работает. Я пытался проверить приведенный ниже код, но, похоже, не могу заставить его работать.
Кто-нибудь может заметить, что я делаю неправильно, или есть предложения?
<%@ WebHandler Language="C#" Class="IconsDb" %>
using System;
using System.Web;
using System.Linq;
using System.Data.Entity;
public class IconsDb : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
Int32 iconId;
if (context.Request.QueryString["id"] != null)
iconId = Convert.ToInt32(context.Request.QueryString["id"]);
else
throw new ArgumentException("No parameter specified");
context.Response.ContentType = "image/gif";
//System.IO.Stream strm = ShowEmpImage(iconId);
var db = new UdINaturen.UdINaturenContext();
var GetIcon = (from i in db.subcategoryicons
where i.id == iconId
select i.picture).FirstOrDefault();
object img = GetIcon;
System.IO.MemoryStream memStream= new System.IO.MemoryStream((byte[])Convert.FromBase64String(GetIcon));
System.Drawing.Bitmap bitImage=new System.Drawing.Bitmap((System.Drawing.Bitmap)System.Drawing.Image.FromStream(memStream));
byte[] buffer = memStream.ToArray();
context.Response.ContentType = "image/gif";
//context.Response.OutputStream.Write(buffer, 0, buffer.Length);
//context.Response.WriteFile();
context.Response.BinaryWrite(buffer);
//context.Response.Flush();
}
public bool IsReusable {
get {
return true;
}
}
}