我的图片突然无法在我的应用程序中运行。在设计期间,它们完美呈现。但是在运行时,我的所有图像都不存在。我把它们放在Images文件夹中。我正在使用“〜/”返回根目录。这曾经工作,出于某种原因停止工作。有什么想法吗?
<asp:Image ID="imgFirstElected" runat="server"
ImageUrl="~/Images/calendar_icon.gif" style="cursor:pointer;" />
编辑:
好的,我发现这是因为我的ImageHandler。如果我从web.config中删除此代码,我的图像会再次出现。知道如何解决这个问题吗?
<httpHandlers>
<add verb="*" path="*.bmp" type="CurrentFigures.HttpImageHandler,CurrentFigures"/>
<add verb="*" path="*.jpg" type="CurrentFigures.HttpImageHandler,CurrentFigures"/>
<add verb="*" path="*.gif" type="CurrentFigures.HttpImageHandler,CurrentFigures"/>
<add verb="*" path="*.png" type="CurrentFigures.HttpImageHandler,CurrentFigures"/>
</httpHandlers>
编辑:图像处理程序代码
public bool IsReusable
{
get
{
return false;
}
}
public void ProcessRequest(HttpContext context)
{
int imageid = Parser.GetInt(context.Request.QueryString["ImID"]);
ProfileImage image = new ProfileImage(Parser.GetInt(imageid));
if (imageid > 0)
{
context.Response.ContentType = "image/jpeg";
Stream strm = ShowImage(imageid);
byte[] buffer = new byte[4096];
int byteSeq = strm.Read(buffer, 0, 4096);
while (byteSeq > 0)
{
context.Response.OutputStream.Write(buffer, 0, byteSeq);
byteSeq = strm.Read(buffer, 0, 4096);
}
}
/*
string imageid = context.Request.QueryString["ImID"];
ProfileImage image = new ProfileImage(Parser.GetInt(imageid));
context.Response.BinaryWrite(image.ImageData);
context.Response.End(); */
}
public Stream ShowImage(int imageID)
{
ProfileImage image = new ProfileImage(Parser.GetInt(imageID));
try
{
return new MemoryStream(image.ImageData);
}
catch
{
return null;
}
}
答案 0 :(得分:1)
您需要在context.Response.Flush();
循环结束后调用while