用ashx动态生成文件(转载)
来源:互联网 发布:追日软件 编辑:程序博客网 时间:2024/06/05 02:14
用ashx动态生成文件
<% @ webhandler language="C#" class="AverageHandler" %>using System; using System.Web; public class AverageHandler : IHttpHandler { public bool IsReusable { get { return true; } } public void ProcessRequest(HttpContext ctx) { ctx.Response.Write("hello"); } }
注:IsReusable 属性是必须的 也不以不建立.ashx文件,用一个类来handle对.ashx文件的请求,在web.config中加入
然后就可以在AshxHandler类中处理对 ashx文件的请求了,理论上应该可以返回任何类型的东东//----------------------------------------
//Pickyourfavoriteimageformat
//------------------------------
byte[]byteArr=(byte[])oChartSpace.GetPicture("png",500,500);
//----------------------------------------
//StorethechartimageinSessiontobepickedupbyanHttpHandlerlater
//---------------------------------------
HttpContextctx=HttpContext.Current;
stringchartID=Guid.NewGuid().ToString();
ctx.Session[chartID]=byteArr;
imgHondaLineup.ImageUrl=string.Concat("chart.ashx?",chartID);
chart.ashx里面就下面一句话
<%@WebHandlerlanguage="C#"class="AspNetResources.Owc.ChartHandler"codebehind="chart.ashx.cs"%>
其实也可以用这个代替
在web.config里面的<system.web>里面加上
<httpHandlers>
<addverb="*"path="*.ashx"type="AspNetResources.Owc,ChartHandler"validate="false"/>/*ChartHandler是那个ashx.cs编译后生成的代码Assembly*/
<!--Sincewearegrabbingallrequestsafterthis,makesureError.aspxdoesnotrelyon.Text-->
<addverb="*"path="Error.aspx"type="System.Web.UI.PageHandlerFactory"/>
</httpHandlers>
具体使用哪个都无所谓,后一种配置好了就方便一些,不用管路径了,其实这个思想的应用比较知名的在.text里面就已经有了,只不过应用的方向不同。
ashx.cs文件的代码
usingSystem;
usingSystem.Web.SessionState;
usingSystem.IO;
usingSystem.Web;
namespaceAspNetResources.Owc
{
publicclassChartHandler:IHttpHandler,IReadOnlySessionState
{
publicboolIsReusable
{
get{returntrue;}
}
publicvoidProcessRequest(HttpContextctx)
{
stringchartID=ctx.Request.QueryString[0];
Arrayarr=(Array)ctx.Session[chartID];
ctx.ClearError();
ctx.Response.Expires=0;
ctx.Response.Buffer=true;
ctx.Response.Clear();
MemoryStreammemStream=newMemoryStream((byte[])arr);
memStream.WriteTo(ctx.Response.OutputStream);
memStream.Close();
ctx.Response.ContentType="image/png";
ctx.Response.StatusCode=200;
ctx.Response.End();
}
}
}
- 用ashx动态生成文件(转载)
- 用ashx动态生成文件
- 用ashx动态生成文件
- 用ashx动态生成文件
- 用ashx动态生成文件
- easyui datagrid+ashx实现动态生成列
- Easyui datagrid+ashx 实现动态生成列
- 使用ashx文件生成验证码图片
- 关于ashx文件的.cs自动生成
- 使用ashx文件生成验证码图片
- highCharts+ajax+json+ashx混合图形动态生成
- ashx文件
- *.ashx文件
- *.ashx文件
- ashx文件
- ashx文件
- ashx文件
- .ashx 文件
- .Net平台应用程序单一运行实例代码实现
- Windows平台上的SVN服务器架设步骤
- Function实现ALV Table七:汇总,分类汇总,排序,过滤
- linux下安装oracle10g如何实现多数据库实例运行
- Ajax demo
- 用ashx动态生成文件(转载)
- XP局域网内共享不了文件
- PHP学习路程感悟 -- 对路了真好
- 职业七年之痒变四年之痛
- XPath类-操作XML工具类
- 心血来潮
- 我是色色 -- 个人站开通 (*^__^*) 嘻嘻……
- .Net1.0和2.0下 soap序列化和binary序列化对比
- ASP.NET中实现页面间的参数传递 QueryString/Application/Session/Cookie (转载)