Software Development DotNet ASP.NET - 15、HttpHandler

Created at 2013-02-14 Updated at 2018-05-03 Category Software Development Tag DotNet / Software Development / ASP.NET

1、HttpHandler

  • 是通过对请求的响应,输出普通html,图片,一个文件(下载)
  • 一般,普通Html用aspx响应,非Html用HttpHandler响应输出。

2、动态输出图片,图片中加一些信息

1
2
3
4
5
6
7
8
9
10
11
12
13
Context.Response.ContentType="image/JPEG";
Using(System.Drawing.Bitmap bitmap=new System.Drawing.Bitmap(300,300))
{
Using(System.Drawing.Graphics g=System.Drawing.Graphics.FormImage(bitmap))
{
Using(Font font=new System.Drawing.Font("宋体",30))
{
g.DrawString("IP:"+Context.Request.UserHostAddress,font,System.Drawing.Brushes.Red,0,0);
//Context.Request.Browser.Platform "操作系统"
//context.Request.Browser.Type "浏览器"
}
}
}

3、下载文件,响应报文头中,会有Content-Disposition

1
2
3
4
Context.Response.ContentType="image/JPEG"; 
Context.Response.AddHeader("Content-Disposition",
"attachment:filename=haha.jpg"); //处理,附件,默认文件名
Context.Response.WriteFile("aaa.jpg");

4、如果默认下载文件名为中文,必须使用UrlEncode对文件名进行编码

1
string filename=HttpUtility.UrlEncode("哈哈.jpg");

5、下载地址为ashx文件

1
<a href="tupian.ashx" />

6、图片是动态输出给用户,未生成文件存在服务器以提供下载。

  • 能直接生成的内容以流的形式输出给浏览器,就不要生成临时文件,避免重名问题。

7、Mdf文件建在App_Data,此文件夹下的文件会禁止下载,连接数据库用 |DataDirectory|, 用DataReader读

Site by Reinhard Hsu using Hexo & Random

Hide