`
tianshibaijia
  • 浏览: 1125241 次
文章分类
社区版块
存档分类
最新评论

开始学习ASP.net------如何利用ASP.net动态输出图片

 
阅读更多

1.引言

做ASP.net开发大部分时间是在动态输出html文件,通过<img src=xxx.jpg />连接静态的图片文件。所做的编程工作也大部分是在aspx文件里添加代码。其实所作的就是完善Page类得派生类。因为所有的aspx对应的类都是继承自Page。而Page类本身负责完成整个页面生存周期的管理工作。但有时候,输出并不需要复杂的html页面,而是简单的图片,如验证码就是个非常典型的例子。

2请求执行流程与通用处理程序

HttpApplication根据web.cofig中处理程序的映射关系,根据url找到对应的实现了IHttpHandler的类,并实例化后,调用类的ProcessRequest()方法,完成渲染输出。由于ASP.netWeb程序的大部分工作是输出html,所以微软已经设计好了一个实现了IHttpHandler接口的Page类来处理此项任务。而对于其他的输出,如图片,压缩文件,纯文本,xls文件等等,微软没有单独提供处理程序,而是通过提供一种叫做“通用处理程序”的ashx来完成,微软做的是已经把ashx文件映射工作处理好了,我们只需要完成IHttpHandler的接口函数就可以了。

3输出图片的步骤

在VS2010中,右键网站项目,选择添加新项-->一般处理程序,会增加一个.ashx文件,内容如下:

可以看到,代码中定义了一个Handler类,实现了IHttpHandler接口。我们需要做的就是完善ProcessRequest这个接口函数。下面代码输出一个简单的矩形图像。

如果需要在其他html文档中显示动态生成的图片,那么只要在html文档中加入如下代码即可:

<img src="xxx.ashx" />

4 输出其他类型

利用ashx(active server handler extend),我们可以实现输出任何http协议规范中的文档类型。当然也包括html,如果你不想使用复杂的aspx,完全可以自己利用ashx完成简单html的输出任务。不过也就失去了Page类的生命周期管理的便利性,还是看具体要求来决定是否使用Page类(aspx)。

分享到:
评论

相关推荐

    十天学会ASP.net--我认为ASP.NET比ASP难很多,希望大家做好准备

    虽然说学习ASP.NET不需要任何ASP基础,但是我觉得如果大家ASP不会,还是先看一下【十天学会ASP教程】,大家所需要了解的不是ASP的程序怎么写,而是怎么构建服务器,怎么使用HTML表单,同时对SQL语句有一个基础和理解...

    ActiveReports for .NET--灵活强大的.Net 报表制作控件

    使用.NET 版的ActiveReports,你可以采用Visual Studio.NET 编辑器,用C#或Visual Basic .NET 语言编写报表代码,其中包含了ASP.NET 服务器控件,帮助您安装web客户端浏览器以及WinForms浏览器控件,以提供单页浏览...

    asp.net 图片验证 例子

    asp.net 图片验证 例子 1CreateUserWizard控件属性非常多,如何使用CreateUserWizard控件: CreateUserWizard控件会输出一个用户注册表单。如果用户成功提交了该表单,那么一个新用户将添加到网站中。在后台,...

    Asp.net(Chart)

    微软最近发布了一个很酷的新ASP.NET服务器控件,可以免费用在ASP.NET 3.5中,促成基于浏览器的丰富图表场景支持各种丰富的图表选项,包括pie(饼图), area(区域), range(范围), point(点), circular(圆形), ...

    asp.net输出条形码示例

    asp.net输出条形码的demo。生成并存储条形码为JPG图片。

    ASP.NET 3.5 开发大全11-15

    第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 ...

    ASP.NET 3.5 开发大全1-5

    第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 ...

    asp.net专家疑难解答200问

    如何在ASP.NET中动态的创建柱状和饼状统计图 192.如何判断上传图片的高度和宽度 193.如何使用DESCryptoServiceProvider类对数据或者文件进行加密解密 194.如何统计在线人数 195.如何在ASP.NET实现...

    ASP.NET 3.5 开发大全

    第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 ...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。  《ASP.NET 4高级程序设计(第4版)》适合各层次的ASP.NET程序员阅读。 =================== 第一部分 核心概念 第1章 ASP.NET简介 1.1 ASP.NET的...

    ASP.NET4高级程序设计(第4版) 3/3

    另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。  《ASP.NET 4高级程序设计(第4版)》适合各层次的ASP.NET程序员阅读。 作者简介 作者:(美)麦克唐纳 目录 第一部分 核心概念 第1章 ASP.NET简介 ...

    ASP.NET3.5从入门到精通

    第 1 章认识 ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET 历史与展望 1.1.2 ASP.NET 与ASP 1.1.3 ASP.NET 开发工具 1.1.4 ASP.NET 客户端 1.1.5 ASP.NET 3.5 新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET 应用程序需...

    asp.net做的电影网,含数据库

    asp.net做的电影网,含数据库。有验证码,背景音乐,漂浮广告,滚动图片,聊天室。后台管理可实现电影添加输出更新。用户添加删除更新。附加数据库和程序截图

    ASP.NET 3.5 开发大全word课件

    4.1.5 ASP.NET网站和ASP.NET应用程序的区别 4.2 代码隐藏页模型的解释过程 4.3 代码隐藏页模型的事件驱动处理 4.4 ASP.NET客户端状态 4.4.1 视图状态 4.4.2 控件状态 4.4.3 隐藏域 4.4.4 Cookie 4.4.5 客户端状态...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    在ASP.Net课程的一开始,不是直接教学员怎么拖ASP.Net控件进行快速开发,而是通过ashx的模式开发原始的动态网站,让学员明白“请求—处理—响应模型”、“Http协议、Http无状态”、“c#代码渲染生成浏览器端...

    iwms网站管理系统asp.net下载

    网奇Iwms网站管理系统是由木鸟开发的一套安全易用的网站管理系统,本系统采用ASP.NET内核制作,本系统最大的特点是;后台管理功能强大,网站运行速度快,支持静态输出,网站安全性极高,对搜索引擎的支持性好。 开发环境...

    asp.net面试题

    四、关于ASP.NET中的代码隐藏文件的描述正确的是( )。 A.Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名 B.web...

    ASP.net实例光盘源码:

    Sample_03_01/OutImage.aspx 输出图像 Sample_03_01/OutText.aspx 输出文本 Sample_03_01/Src.aspx 源 Sample_03_01/SrcPage.aspx 重定向的源页面 Sample_03_01/SrcParam.aspx 传递...

    asp.net实现图片以二进制流输出的两种方法

    本文实例讲述了asp.net实现图片以二进制流输出的两种方法。分享给大家供大家参考,具体如下: 方法一: System.IO.MemoryStream ms = new System.IO.MemoryStream(); System.IO.Stream str = new FileUpload()....

Global site tag (gtag.js) - Google Analytics