使用HttpHandlers异步传输图片

原创 2006年06月04日 11:45:00

在这篇不算文章的文章之前,我建议大家去看看Mansoor Ahmed Siddiqui的那篇《HTTP Handlers and HTTP Modules in ASP.NET》,那里面详细介绍了HTTP Handlers和HTTP Moudules 的使用方法。

第一步我们使用.net建立一个web应用程序项目,添加一个类,它继承了IHttpHandler和 IRequiresSessionState,用于处理请求并向客户端传送请求,如下,编译后默认应该为test.dll,assemblyname应该为test:

using System;
using System.IO;
using System.Web;
using System.Data;
using System.Web.SessionState;

namespace test

{

      public class image: IHttpHandler, IRequiresSessionState

      {

              public bool IsReusable
              {
                    get 
                    {
                             return true;
                    }
              }

              public void ProcessRequest(HttpContext context)
              {

                    FileStream fs = new FileStream(@"f:/nothing.gif",FileMode.Open,FileAccess.Read);
                    int length = (int)fs.Length;
                    byte[] b = new byte[length];
                    fs.Read(b,0,length);
                    fs.Close();
    
                    HttpContext.Current.Response.OutputStream.Write(b, 0, length);
                    HttpContext.Current.Response.End();

              }

      }

}

第二步在项目下webconfig中配置:

<httpHandlers>

<add verb="*" path="getimage.ashx" type="test.image,test" />

</httpHandlers>

第三步就是使用,添加一个.aspx或者html页面,然后使用js进行请求:

document.getElementById("Image").src = "getimage.ashx";

如果需要传递参数:

document.getElementById("Image").src="getimage.ashx?a=1&b=2";

这样需要在image类中增加接收参数的处理,其实和页面之间的参数传递一样:

string a = context.Request["a"];

注:使用过MapXtreme2005的开发人员应该很清楚,因为MapXtreme2005中WebControls的工作原理也正在于此。

.net httpHandlers 的配置与使用

HttpHandler是asp.net真正处理Http请求的地方。在这个HttpHandler容器中,ASP.NET Framework才真正地对客户端请求的服务器页面做出编译和执行,并将处理过后的信...
  • wangzhiqiang123456
  • wangzhiqiang123456
  • 2015年04月22日 12:37
  • 1574

<httpHandlers>的配置和使用

前两天 领导让改了一个控件,就是 百度编辑器的  前台处理和后台处理分开,简单的说,是把 .ashx的页面单独编译成dll , 前后想了想,.ashx文件又没有cs代码,怎么能编译?尝试了几次没能成...
  • liyanping521
  • liyanping521
  • 2014年03月28日 17:04
  • 2029

在配置文件web.config中配置httpHandlers节点是的一些说明

说明如下: verb可以是“POST”或 “GET”,表示对GET或POST的请求进行处理。“*”表示对所有的请求进行处理。 path指明相对应的文件进行处理,"*.aspx" 表示对发给所有...
  • Joyhen
  • Joyhen
  • 2013年04月01日 17:06
  • 7530

由Ajax对比同步传输和异步传输

ajax 的全称是AsynchronousJavaScript and XML,异步JavaScript及 XML,它有别于传统web开发中采用的同步的方式,这也正是Ajax的真正意义所在,起到了一个...
  • cjr15233661143
  • cjr15233661143
  • 2014年03月18日 14:08
  • 3492

使用httpHandlers

MSDN:http://msdn.microsoft.com/zh-cn/library/bya7fh0a(VS.80).aspx 主要的步骤1)编写DLL,处理特定的HTTP请求2)在web项目里引...
  • qdrush
  • qdrush
  • 2009年09月15日 17:56
  • 4683

计算机网络 同步传输和异步传输(理解)

在网络通信过程中,通信双方要交换数据,需要高度的协同工作。为了正确的解释信号,接收方必须确切地知道信号应当何时接收和处理,因此定时是至关重要的。 在计算机网络中,定时的因素称为位同步。同步是要接收方按...
  • THISISPAN
  • THISISPAN
  • 2012年04月20日 13:44
  • 13963

HttpHandlers

ASP.NET Request ProcessingASP.NET maps HTTP requests to HttpHandlers. Each HttpHandler enables proce...
  • keduosou
  • keduosou
  • 2008年09月19日 22:37
  • 802

通信协议之异步传输、同步传输的区别

在网络通信过程中,通信双方要交换数据,需要高度的协同工作。为了正确的解释信号,接收方必须确切地知道信号应当何时接收和处理,因此定时是至关重要的。在计算机网络中,定时的因素称为位同步。同步是要接收方按照...
  • u013083059
  • u013083059
  • 2017年03月24日 14:08
  • 353

同步传输和异步传输的区别

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。 更加形象一点的解释:...
  • u014180504
  • u014180504
  • 2015年07月28日 11:25
  • 1284

UDP(Socket)异步传输文件

目前要
  • u011692924
  • u011692924
  • 2014年07月12日 21:29
  • 799
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用HttpHandlers异步传输图片
举报原因:
原因补充:

(最多只允许输入30个字)