`

ashx处理程序

    博客分类:
  • HTML
 
阅读更多

ashx

与Java Servlet类似,不用涉及到aspx个页面。ashx是asp的基本处理程序。aspx继承自ashx处理程序的。

 

.ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。

 

创建ashx程序

Visual Studio中【添加新项】对话框-->【web】菜单-->【一般处理程序】。

 

注意:表单提交一定要有name

提交到服务器的表单元素,一定要有name属性。否则浏览器不会提交表单元素的值。

由于servlet和struts2获取请求参数时都会使用浏览器端的name属性。所以之前没有注意过这个问题。

 

说明:

新建的一般处理程序。会有WebService的字符在类之前。但没有引入命名空间。显示错误。

在不使用WebService情况下,可以删掉。也可以引入命名空间,消除错误。

 

例:

1.HTML表单

 

<html> 
<head><title></title></head>
<body>
<form action="Hello.ashx">
姓名:<input type="text" name="UserName" /><input type="submit" value="提交" />
</form>
</body>
</html>

 

 

2.ashx处理程序

 

//Hello.ashx文件

using System;
using System.Web;

public class Hello:IHttpHandler{
    
    public void ProcessRequest(){
        context.Response.ContentType="text/html";
        string userName=context.Request[UserName];
        if(string.IsNullEmpty(userName)){
            context.Response.Write("Welcome:"+userName);
        }else{
            context.Response.Write("Welcome");
        }
    }

    public bool IsReusable{
        get{
            return false;
        }
    }
}

 

 

HttpHandler实现文件下载

如果HttpHandler输出的是html,txt,jpeg等类型的信息,那么浏览器会直线显示。如果希望弹出保存对话框,则需要添加Header:

string encodeFileName=HttpUtility.UrlEncode("下载数据.xls");

Response.AddHeader("Content-Disponsition",string.Format("attachment;filename=\"{0}\"",encodeFileName));

 

说明:filename表示默认文件名。

 

ContentType:

excel:application/x-excel

任意文件下载:application/x-stream

 

 

NPOI创建Excel

 

1.把NPOI拷贝到项目中。

    即在应用程序中建立一个文件夹(如lib),拷贝NPOI的所有dll和其他文件到这个文件夹中。

 

2.引用文件夹中的dll

    右击【引用】-->【添加引用】-->【浏览】

 

3.新建一般处理程序。

 

using System;
using System.Web;

public class Hello:IHttpHandler{
    
    public void ProcessRequest(){
        context.Response.ContentType="application/x-excel";
        string encodeFileName=HttpUtility.UrlEncode("动态数据.xls");
        Response.AddHeader("Content-Disponsition",string.Format

("attachment;filename=\"{0}\"",encodeFileName));
        HSSFWorkbook=new HSSFWorkbook();
        HSSFSheet sheet = workbook.CreateShet();
        HSFRow = sheet.CreateRow(0);
        HSSF Cell1=row.CreateCell(0,HSSFCell.CELL_TYPE_STRING);
        cell1.SetCellValue("hello");
        //row.CreateCell(0,HSSFCell. CELL_TYPE_STRING ).SetCellValue("Hello");
        row.CreateCell(1,HSSFCell.CELL_TYPE_NUMERIC).SetCellValue(3.14);
        wookbook.Write(context.Response.OutpouStream);
    }

    public bool IsReusable{
        get{
            return false;
        }
    }
}
 

 

 

 

注意:能直接将生产的文件以流的形式输出给浏览器,就不要生产临时文件。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    在ashx中验证是否登陆、是否有操作权限的基类

    在标题提及的场景中,“在ashx中验证是否登陆、是否有操作权限的基类”是一个设计模式,旨在提高代码的复用性和安全性,使得每个具体的ASHX处理程序无需重复编写用户身份验证和权限检查的逻辑。 首先,让我们理解...

    Android应用源码之android与asp.net中的一般处理程序ashx进行交互_ashx.zip

    1. 创建`URL`对象,指向服务器的ASHX处理程序地址。 2. 使用`openConnection()`打开连接,并将其转换为`HttpURLConnection`对象。 3. 设置请求方法,如GET或POST,通过`setRequestMethod()`。 4. 若发送POST请求,需...

    一般处理程序验证是权限

    例如,可以使用`[Authorize]`特性来限制只有特定角色或用户才能访问某个ASHX处理程序。 3. **自定义验证逻辑**:有时,简单的身份验证和授权机制不足以满足复杂的安全需求。在这种情况下,开发者可以编写自定义代码...

    ASP.NET中使用一般处理程序ashx作为后台处理实现响应get和post请求示例代码.zip

    创建一个名为`MyHandler.ashx`的一般处理程序,首先需要继承` IHttpHandler`接口,并实现其`IsReusable`和`ProcessRequest`方法。以下是一个基本的示例: ```csharp using System.IO; using System.Web; public ...

    ashx漏洞福利包

    2. **SQL注入**:如果ashx处理程序与数据库交互,并且未对用户输入进行充分的过滤或转义,那么攻击者可能会利用SQL注入漏洞,执行恶意SQL查询,获取敏感数据或篡改数据库内容。 3. **跨站脚本(XSS)**:ashx处理...

    ajax页面交互ashx

    创建一个新的Ashx处理程序非常简单,只需要在项目中添加一个新项,选择“Generic Handler (.ashx)”模板。例如,创建一个名为`MyAshxHandler.ashx`的处理器: ```csharp using System; using System.Web; public ...

    winform上传文件,带进度条,用一般处理程序ashx接收,传有参数。源代码例子下载

    - 在ASHX处理程序中,需要解析`HttpContext.Current.Request.InputStream`以获取文件数据,同时可以从`Request.Form`中获取其他表单字段,即参数。 9. **错误处理与安全**: - 上传过程应包含适当的错误处理机制...

    android与asp.net中的一般处理程序ashx进行交互.rar

    6. **ASHX处理程序编写**:在ASP.NET端,ASHX文件是一个简单的.NET类,继承自IHttpHandler接口,并实现ProcessRequest方法。在这个方法中,开发者可以读取请求参数,执行业务逻辑,然后生成并返回响应。 7. **数据...

    在ashx中利用反射+jquery轻松处理ajax

    最后,压缩包中的文件"HandlerHelper"可能是实现这些功能的具体代码示例,包括ASHX处理程序和可能的辅助类或工具。通过分析这个代码,我们可以深入了解如何将这些技术整合在一起,实现高效且易于维护的Web应用程序。...

    Jquery调用ashx

    当我们想要调用ASHX处理程序时,可以利用$.ajax()或其简化的版本如$.get()、$.post()等。 例如,假设我们有一个名为`Data.ashx`的ASHX处理程序,它接收一个名为`id`的参数并返回相应数据。我们可以这样使用jQuery...

    HTML+ASHX上传传图片.zip

    2. **ASHX处理程序**: 在服务器端,ASHX处理程序接收并处理来自HTML表单的POST请求。在C#中,你需要创建一个继承自`IHttpHandler`接口的类,并实现`ProcessRequest`方法。这个方法将解析上传的文件,并保存到...

    安卓开发-android与asp.net中的一般处理程序ashx进行交互.zip.zip

    本教程将深入探讨如何在Android应用中与ASP.NET的ASHX处理程序进行交互,实现数据的发送和接收。 首先,了解ASHX处理程序。ASHX是ASP.NET中的一个自定义HTTP处理程序,它不像ASPX页面那样具有完整的页面生命周期和...

    AJAX+JSON+ASHX分页源码

    2. 服务器端:ASHX处理程序接收请求,根据传入的参数(如页码和每页大小)查询数据库,获取对应的数据,然后将数据转化为JSON格式返回给客户端。 五、代码注释 源码中应该包含了详细的注释,帮助理解每个部分的功能...

    easyui+ashx订单管理系统

    "easyui+ashx订单管理系统"是一个基于.NET技术栈,结合了EasyUI前端框架和ASHX处理程序的订单管理解决方案。这个系统展示了如何利用这两种技术来构建一个完整的、功能丰富的订单管理平台,其中包括订单的创建、查看...

    uploadify+ashx 跨域上传

    在C#的Ashx处理程序中,可以通过以下代码实现: ```csharp context.Response.AddHeader("Access-Control-Allow-Origin", "*"); ``` 这里的`*`表示允许所有源访问,也可以替换为具体的域名,以限制访问范围。此外,...

    ashx上传文件

    3. **AJAX提交**:为了实现无刷新上传,可以使用jQuery的`$.ajax`或`$.post`方法,或者ASP.NET的UpdatePanel,将表单数据异步提交到ASHX处理程序。 4. **响应处理**:在前端接收到ASHX返回的信息后,根据返回结果...

    ajax+ashx完整上传图片示例,可回显

    3. **ASHX处理**:服务器端的ASHX处理程序接收到请求后,读取请求体中的图片数据,通常会将其保存到服务器的指定目录,并生成一个唯一的URL或ID来标识这张图片。 4. **回显图片**:ASHX处理程序处理完图片后,返回...

    Android应用源码之android与asp.net中的一般处理程序ashx进行交互.zip

    1. 创建一个URL对象,指向ASP.NET ASHX处理程序的URL。 2. 打开到该URL的连接,并设置请求方法(GET、POST等)。 3. 若是POST请求,设置请求体(如JSON格式的数据)。 4. 设置必要的请求头,例如Content-Type(通常...

    Ajax+HTML+ASHX实现文件异步上传

    在这种文件上传场景下,ASHX处理程序接收由Ajax发送的文件数据,并在服务器端进行处理,如保存到硬盘、数据库或其他存储介质。 实现步骤如下: 1. **创建HTML界面**:在`index.html`中,创建一个包含文件输入控件...

    ]AJAX+JSON+ashx无刷新分页源码

    【描述】该源码示例展示了如何利用AJAX技术、JSON数据格式以及ASHX处理程序实现网页内容的无刷新分页,提供了一种高效且用户体验良好的动态加载数据方式。 在Web开发中,AJAX(Asynchronous JavaScript and XML)...

Global site tag (gtag.js) - Google Analytics