【发布时间】:2010-06-08 17:54:59
【问题描述】:
我正在使用自定义 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;
【问题讨论】:
-
是的,请给我们一些代码,因为您的问题可能有多种不同的方式,我们希望为您提供具体的帮助。
-
按要求添加代码!
标签: c# asp.net image-manipulation httphandler ashx