Ashx文件在MVC ASP.net中创建图像

时间:2009-11-20 16:19:31

标签: asp.net-mvc httphandler

我正在动态创建图片,需要向用户展示这些图片。 为此我创建了一个ashx文件,但问题是这个ashx文件永远不会被调用不确定为什么路径问题或需要在web.config中添加任何标签.. 调试它不会..可能是它没有找到 请指教。

编辑:当我直接点击ashx网址并显示一些结果时

编辑1:在上下文中出于任何原因知道会话是否为空?

或MVC asp.net不要求ashx处理程序请指教。

/// <summary>
/// Summary description for $codebehindclassname$
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class GetImage : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        Log.Info(" In theGetImage");
        context.Response.Clear();
        byte[] imageByteArray = System.Convert.FromBase64String(context.Session["FrontJpegBase64"].ToString().Replace(' ', '+'));
        // System.IO.MemoryStream imageMemoryStream = new System.IO.MemoryStream(imageByteArray);

        try
        {
            using (System.Drawing.Image img = System.Drawing.Image.FromStream(new System.IO.MemoryStream(imageByteArray)))
            {
                img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
            }

        }
        catch (System.Exception ex)
        {
                       }
        finally
        {
            // img.Close();
            context.Response.Flush();
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

在控制器中,您需要创建一个返回FileResult

的函数

在vb.net中

Function img() As FileResult
    Dim bmp As Bitmap = Nothing
    Dim dll As New Chess.cChessBoard

    dll.drawBoardPNG(bmp)

    Dim imgStream As New IO.MemoryStream
    bmp.Save(imgStream, ImageFormat.Png)
    imgStream.Position = 0

    Return File(imgStream.ToArray, "image/png")
End Function
在视图中

,您只需要调用

 <img src="/test/chess/img" />