handler.ashx

来自「一个多用户在线题库管理系统,可以实现各类试题的添加和管理」· ASHX 代码 · 共 59 行

ASHX
59
字号
<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.Collections;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;



public class Handler : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "image/jpeg";
        context.Response.BufferOutput =true;

        double MaxLength =100;

        if ( context.Request.QueryString["filename"] != null)
        {
            //取得原图   
            string filename =context. Request.QueryString["filename"];
            Bitmap bmpOld = new Bitmap(context.Server.MapPath("~/upload/" + filename));

            //计算缩小比例   
            double d1;
            if (bmpOld.Height > bmpOld.Width)
                d1 = (double)(MaxLength / (double)bmpOld.Width);
            else
                d1 = (double)(MaxLength / (double)bmpOld.Height);

            //产生缩图   
            Bitmap bmpThumb = new Bitmap(bmpOld, (int)(bmpOld.Width * d1), (int)(bmpOld.Height * d1));

            //   清除缓冲     
            context. Response.Clear();
            //生成图片   
            bmpThumb.Save(context.Response.OutputStream, ImageFormat.Jpeg);
            
            context.Response.End();
            //释放资源   
            bmpThumb.Dispose();
            bmpOld.Dispose();
            context.Response.Flush();
          
            
        }
    }
  public bool IsReusable
    {
        get { return false;}
    }
  

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?