Asp.Net中级 - 5.HttpHandler案例
HttpHandler1#
(1) HttpHandler是对请求的响应,可以输出普通的html内容,也可以输出图片、也可以输出一个文件(下载)
(2) 输出一幅动态创建的图片(能看懂就可以)
(3) 案例1:图片中显示访问者信息
(4) 案例2:填入朋友的姓名就能生成恶搞的图片链接
(5) 网上看到的注册、登录时候的验证码也是动态生成的图片、55.la也是这样实现的原理。
HttpHandler实现文件下载 #
(1) 如果HttpHandler输出的是html、txt、jpeg等类型的信息,那么浏览器会直接显示,如果希望弹出保存对话框,则需要添加Header:string encodeFileName = HttpUtility.UrlEncode("过滤词.txt"); Response.AddHeader("Content-Disposition", string.Format("attachment;filename=\"{0}\"", encodeFileName));其中filename后为编码后的文件名。filename段为建议的保存文件名
示例:#
(1)第一步
xiazai1.aspx <form id="form1" runat="server"> <div> <a href="2013-05-07 21-05-25.png">图片1</a> </div> </form> |
(2)第二步
xiazai1.aspx更改
<form id="form1" runat="server"> <div> <a href="2013-05-07 21-05-25.png">图片1</a><a href= "./xiazai2.ashx">图片2</a> </div> </form> xiazai2.ashx public void ProcessRequest(HttpContext context) { context.Response.ContentType = "image/jpeg"; context.Response.AddHeader("Content-Disposition", "attachment;filename=image2.jpg"); context.Response.WriteFile("2013-05-07 21-05-25.png"); } |
(3)第三步
如果保存为中文名,就会出现乱码。 public void ProcessRequest(HttpContext context) { context.Response.ContentType = "image/jpeg"; context.Response.AddHeader("Content-Disposition", "attachment;filename=脑残.jpg"); context.Response.WriteFile("2013-05-07 21-05-25.png"); } 需要对 脑残.jpg 加 UrlEncode public void ProcessRequest(HttpContext context) { context.Response.ContentType = "image/jpeg"; string filename = HttpUtility.UrlEncode("脑残.jpg"); context.Response.AddHeader("Content-Disposition", "attachment;filename=" + filename); context.Response.WriteFile("2013-05-07 21-05-25.png"); } |
(2) 动态输出用处,不用再把资源保存到磁盘上再输出(不会有文件重名的问题,文件不生成在服务器端)。案例:点击链接弹出图片下载对话框。Web的原则:能直接将生成的内容以流的形式输出给浏览器,就不要生成临时文件。
(3) 用NPOI动态生成一个Excel表然后弹出对话框让用户下载,文件名是“用户列表.xls”。
(4) 练习:从数据库用户表导出数据到Excel文件,让用户下载。mdf放到App_Data下,asp.Net不用那段设置DataDirectory的代码,用DataReader的方式读取数据
(5) 练习:用户表增加一个级别字段。只有登录用户才能下载images下的图片文件(Session中标识是否登录),如果用户没有登录则首先重定向到登录界面让用户登录,用户登录成功则跳转到下载列表页面,下载链接固定写好即可。如果登录用户是普通用户则在图片左上角加上“免费用户试用”的字样。“安全退出”。画页面流程。
(6) 练习:给上面的程序加上登录验证码。
(没仔细看。想看详细的朋友自己去看看吧)#
【传智播客.Net培训—asp.net中级】8HttpHandler练习说明.avi
~
~
~
【传智播客.Net培训—asp.net中级】13案例:图库权限控制4.avi
作者:【唐】三三
出处:https://www.cnblogs.com/tangge/archive/2013/05/07/3065552.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2012-05-07 SQL – 10.流程函数
2011-05-07 一名真正的Web程序员应该懂得那些方面的知识,应该注意学习哪些东西
2011-05-07 程序员职业发展:如何作技术型领导