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;
            }
        }
    
    }
  • 相关阅读:
    ArcGIS Server 10.2 安装教程
    leaflet 使用kriging.js实现前端自定义插值
    气象科普 -降水
    前端开发者如何用JS开发后台
    Spring的简单介绍
    Hibernate与jsp技术结合的小例子
    Servlet_001 我的第一个servlet程序
    Hibernate一级缓存和三种状态
    github提交代码
    MySql索引原理以及查询优化
  • 原文地址:https://www.cnblogs.com/daomul/p/2993206.html
Copyright © 2011-2022 走看看