ashx文件的使用[转]

简介:

原文:http://www.cnblogs.com/jerry0925/articles/901936.html

 

Ashx文件,我们可用用来作图片加载(在之前我们一般使用ASPX或者Webservice去做),一般做法如下:

Handler.ashx:

 

复制代码
 1 <% @ WebHandler Language = " C# "  Class = " Handler "   %>
 2 using  System;
 3 using  System.IO;
 4 using  System.Web;
 5 ExpandedBlockStart.gif public   class  Handler : IHttpHandler  {
 6
 7ExpandedSubBlockStart.gifpublic bool IsReusable {
 8ExpandedSubBlockStart.gif  get {
 9   return true;
10  }

11}

12ExpandedSubBlockStart.gifpublic void ProcessRequest (HttpContext context) {
13  context.Response.ContentType = "image/jpeg";
14  context.Response.Cache.SetCacheability(HttpCacheability.Public);
15  context.Response.BufferOutput = false;
16  PhotoSize size;
17ExpandedSubBlockStart.gif  switch (context.Request.QueryString["Size"]) {
18   case "S":
19    size = PhotoSize.Small;
20    break;
21   case "M":
22    size = PhotoSize.Medium;
23    break;
24   case "L":
25    size = PhotoSize.Large;
26    break;
27   default:
28    size = PhotoSize.Original;
29    break;
30  }
 
31  Int32 id = -1;
32  Stream stream = null;
33ExpandedSubBlockStart.gif  if (context.Request.QueryString["PhotoID"!= null && context.Request.QueryString["PhotoID"!= ""{
34   id = Convert.ToInt32(context.Request.QueryString["PhotoID"]);
35   stream = PhotoManager.GetPhoto(id, size);
36ExpandedSubBlockStart.gif  }
 else {
37   id = Convert.ToInt32(context.Request.QueryString["AlbumID"]);
38   stream = PhotoManager.GetFirstPhoto(id, size);
39  }

40  if (stream == null) stream = PhotoManager.GetPhoto(size);
41  const int buffersize = 1024 * 16;
42  byte[] buffer = new byte[buffersize];
43  int count = stream.Read(buffer, 0, buffersize);
44ExpandedSubBlockStart.gif  while (count > 0{
45   context.Response.OutputStream.Write(buffer, 0, count);
46   count = stream.Read(buffer, 0, buffersize);
47  }

48}

49}

50
51
复制代码

*.aspx:
<img src="myHttpHander.ashx?id=123" width="20" height="20" />


我们变通以下,发现其实除了可以输出图片以外,还可以输出文字:
Handler.ashx:

复制代码
 1 <% @ WebHandler Language = " C# "  Class = " Handler "   %>
 2 using  System;
 3 using  System.Web;
 4 ExpandedBlockStart.gif public   class  Handler : IHttpHandler  {
 5    
 6ExpandedSubBlockStart.gif    public void ProcessRequest (HttpContext context) {
 7        context.Response.ContentType = "text/plain";
 8        context.Response.Write("alert('hi')");
 9    }

10
11ExpandedSubBlockStart.gif    public bool IsReusable {
12ExpandedSubBlockStart.gif        get {
13            return false;
14        }

15    }

16}

17
复制代码

*.aspx:
弹出alert
<script src="Handler.ashx"></script>
也可以把.ashx当成css文件

<link href="css/Handler.ashx" rel="stylesheet" type="text/css">
xml文件
orderDoc.load("Handler.ashx");


还可以嵌入文字:
Handler.ashx:

复制代码
 1 <% @ WebHandler Language = " C# "  Class = " TestHandler "   %>
 2 using  System;
 3 using  System.Web;
 4 ExpandedBlockStart.gif public   class  TestHandler : IHttpHandler  {
 5    
 6ExpandedSubBlockStart.gif    public void ProcessRequest (HttpContext context) {
 7        context.Response.ContentType = "text/plain";
 8        context.Response.Write("document.write(\"Hello World\");");
 9    }

10
11
12
13ExpandedSubBlockStart.gif    public bool IsReusable {
14ExpandedSubBlockStart.gif        get {
15            return false;
16        }

17    }

18}

19
20
复制代码

*.aspx:
<script type="text/javascript" src="TestHandler.ashx" />

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处!
























本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/archive/2009/07/08/1519022.html ,如需转载请自行联系原作者

相关文章
|
JavaScript .NET 开发框架
|
XML 前端开发 Java
SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传、多文件上传、文件列表显示、文件下载。 本文工程免费下载 一、新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.
1378 0
|
C# 数据格式 JSON
C# 通过form表单下载文本文件
public void DownLoadConfigFile(string name) { //获取文件字符串内容 var data = _service.
805 0
|
SQL 前端开发 JavaScript
ashx的学习
原文:ashx的学习                 嘿嘿,今天我们休息,本来是想总结一下前两周学习的javascript和jquery,但是感觉好困哦,就没有认真地学习啦,于是做了一个小小的练习,刚开始学习html使用在项目中还是蛮高兴的啦,下面就简单的总结一下这个小小的登录页面。
875 0
phpcms多文件上传不允许上传的文件类型
最近自定义字段中,定义了多文件上传类型,里边定义的flv文件格式,但是从前台添加的时候,死活加不进去,一直提示不允许上传的文件类型,后来经过调试在 if(empty($alowexts) || $alowexts == '') { $site_setting = $this-&gt;_get_site_setting($this-&gt;siteid); $alowex
937 0