我正在使用自定义 ashx HttpHandler 从数据库中检索 gif 图像并将其显示在网站上 - 当图像存在时,它工作得很好。
但是,在某些情况下图像将不存在,并且我希望保存图像的 html 表变得不可见,因此不显示“找不到图像”图标。
但是由于 HttpHandler 不是同步的,我在 Page_Load 检查图像大小的所有尝试都受挫。关于如何实现这一点的任何想法?
编辑::
到目前为止,情况如下:
这是我的处理程序:
public void ProcessRequest(HttpContext context)
{
using (Image image = GetImage(context.Request.QueryString["id"]))
{
context.Response.ContentType = "image/gif";
image.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
}
}
private Image GetImage(string id)
{
try
{
System.IO.MemoryStream ms;
byte[] rawImage;
Image finalImage;
// Database specific code!
rawImage = getImageFromDataBase(id);
ms = new System.IO.MemoryStream(rawImage, 0, rawImage.Length);
ms.Write(rawImage, 0, rawImage.Length);
finalImage = System.Drawing.Image.FromStream(ms, true);
return finalImage;
}
catch (Exception ex)
{
System.Console.WriteLine("ERROR:::: " + ex.Message);
return null;
}
}
我像这样使用它:
myImage.ImageUrl = "Image.ashx?id=" + properId;