zoukankan      html  css  js  c++  java
  • ASP.NET 学习笔记_06 Httphandler

    1、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;
            }
        }
    
    }
  • 相关阅读:
    Python之路【第二十九篇】:面向对象基础
    Python之路【第二十八篇】:生成器与迭代器
    爬虫实战---爬取猫眼电影
    Selenium库详解
    PyQuery库详解
    BeautifulSoup解析库详解
    深浅拷贝的使用场景分析
    关于大数据量下Core Data的数据迁移
    IOS5中的新增方法详解
    自定义UISearchBar
  • 原文地址:https://www.cnblogs.com/daomul/p/2993206.html
Copyright © 2011-2022 走看看