图像处理程序未加载图像

时间:2018-06-14 13:38:04

标签: asp.net asp.net-mvc asp.net-mvc-5 httphandler

我正在使用Image处理程序来调整图像大小。但它没有加载图像。

查看:

&#13 ;

 <img src="ImageHandler.ashx?file=~/Images/Releases/koala.jpg" style="width:100px; height:100px;" />
&#13;
&#13;
&#13;

图片处理程序代码。enter image description here 抱歉,我无法在此处添加整个图像处理程序代码,因此添加为图像。 我在这里失踪了什么。请建议。

1 个答案:

答案 0 :(得分:0)

我发现了两个问题。

  1. 请求网址中的QueryString值应该只是文件名 - ImageHandler.ashx?file=koala.jpg

    <img src="ImageHandler.ashx?file=koala.jpg" style="width:100px; height:100px;" />

  2. QueryString名称应为file而不是photo_url

  3. 请在调整大小之前确保以下代码有效。

    public class ImageHandler : IHttpHandler
    {    
        public void ProcessRequest(HttpContext context)
        {
            string fileName = context.Request.QueryString["file"];
            string filePath = context.Server.MapPath("~/Images/Releases/" + fileName);
    
            context.Response.AddHeader("content-disposition", 
                 string.Format("attachment; filename={0}", fileName));
    
            if (File.Exists(filePath))
            {
                byte[] bytes = File.ReadAllBytes(filePath);
                context.Response.BinaryWrite(bytes);
            }
            else
            {
                throw new HttpException(404, "Invalid photo name.");
            }
        }
    
        public bool IsReusable { get { return false; } }
    }