我在C#中创建了一个Ashx处理程序,该处理程序根据fileid
传递给我的参数为我提供图像。我还编写了一个简单的工具提示预览脚本,该脚本无法正常工作。您可以看到图像正在加载,但是在加载之后,图像就消失了。
我怀疑问题出在ASHX处理程序中,因为如果我使用静态图像,它就可以正常工作。这是我的ASHX处理程序代码:
public void ProcessRequest(HttpContext context)
{
string fileId = HttpUtility.UrlDecode(context.Request.QueryString["fileId"] ?? "") ?? "";
string fullFileName = context.Server.MapPath("~/Uploads") + "\\" + fileId;
using (FileStream s = File.Open(fullFileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
context.Response.ContentType = HelperClasses.Utility.GetMimeTypeFromMagic(fullFileName);
var buffer = new byte[s.Length];
s.Read(buffer, 0, (int) s.Length);
context.Response.BinaryWrite(buffer);
context.Response.Write(buffer);
s.Close();
}
context.Response.Flush();
context.Response.Close();
}
另外,我创建了一个小提琴来演示该问题。
在您的代码中,该行
context.Response.Close();
是问题。close方法突然结束响应流,请在此处查看详细信息,并检查此相关问题IIS和Chrome:无法加载资源:net :: ERR_INCOMPLETE_CHUNKED_ENCODING
替换为context.Response.End();
以正常结束响应。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句