ASP.NET 学习笔记_06 Httphandler

1、httphandler

        ASP.NET 学习笔记_06 Httphandler

实例1:通过生成一张动态图片输出客户端的IP地址、操作系统类型、浏览器类型

<%@ WebHandler Language="C#" Class="visitor" %>



using System;

using System.Web;



public class visitor : IHttpHandler {



    public void ProcessRequest(HttpContext context)

    {

        context.Response.ContentType = "image/JPEG";

        using (System.Drawing.Bitmap bitImage = new System.Drawing.Bitmap(330, 300))

        {

            //设置画布

            using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitImage))

            {

                //IP

                g.DrawString("IP:" + context.Request.UserHostAddress, new System.Drawing.Font("宋体", 20), System.Drawing.Brushes.Red, new System.Drawing.PointF(0, 0));

                //操作系统

                g.DrawString("操作系统:" + context.Request.Browser.Platform, new System.Drawing.Font("宋体", 20), System.Drawing.Brushes.Red, new System.Drawing.PointF(0, 50));

                //浏览器

                g.DrawString("浏览器:" + context.Request.Browser.Type, new System.Drawing.Font("宋体", 20), System.Drawing.Brushes.Red, new System.Drawing.PointF(0, 100));

            }

            //保存到输出流中

            bitImage.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);



        }

    }

 

    public bool IsReusable {

        get {

            return false;

        }

    }



}

实例2:通过“下载”连接,弹出用户附件保存

html代码:<a href="dowload.ashx">下载</a>

<%@ WebHandler Language="C#" Class="dowload" %>



using System;

using System.Web;



public class dowload : IHttpHandler {



    public void ProcessRequest(HttpContext context)

    {

        string fileName = HttpUtility.UrlEncode("悲剧.jpg");

        context.Response.ContentType = "image/JPEG";



        //打开附件对话框  报文头header和设置它的值

        context.Response.AddHeader("Content-Disposition", "attachment:filename=" + fileName);

        context.Response.WriteFile("苹果.jpg");       

    }

 

    public bool IsReusable {

        get {

            return false;

        }

    }



}

 

你可能感兴趣的:(asp.net)