asp.net问题ashx文件有什么用

 我来答
lanhawk
推荐于2016-09-16 · TA获得超过834个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:326万
展开全部
Handler.ashx ?
引自网络...
-----------
ASP.NET2.0 Person Web Site:将图片以二进制的从数据库读取
在ASP.NET Person Web Site Starter Kits中,图片的是以二进制的形式存放在数据库里,微软提供的读取该图片的方式是通过handler.ashx来实现的.
首先你所看到的对图片的引用都是类似如下
<img src="Handler.ashx?AlbumID=<%# Eval("AlbumID") %>
的形式,也就是你所看到的每一个图片都由Handler.ashx动态生成,所以在你保存你所看到的"图片"时,它的命名都是Handler.ashx.
使用handler.ashx而不是handler.aspx来引用图片并不是一定的,换句话说,你可以将该文件改为handler.aspx并没有本质的区别,不过根据微软的文档,使用*.ashx作为扩展名的文档比*.aspx的文档性能高,因为它减少了控件树的生成.
----------
这是handler.ashx代码:

<%@ WebHandler Language="C#" Class="MyHandle" %>

using System;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Web.Caching;
using System.Data;

public class MyHandle : IHttpHandler {

public void ProcessRequest (HttpContext context) {
//从数据库中取
MemoryStream ms = JSZ.SQLServerDAL.TestDAL.GetImage(1);
DataTable dt = JSZ.SQLServerDAL.TestDAL.GetTable(1);
Byte[] image = (Byte[])dt.Rows[0]["Photo"];
MemoryStream ms = new MemoryStream(image, 0, image.Length);
if (ms != null)
{
//取得图像MemoryStream大小
int bufferSize = (int)ms.Length;
//建立 buffer
byte[] buffer = new byte[bufferSize];
//调用MemoryStream.Read,自MemoryStream 读取至buffer,并返回count
int countSize = ms.Read(buffer, 0, bufferSize);
//返回图像buffer
context.Response.OutputStream.Write(buffer, 0, countSize);
}
}

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

参考资料: http://zhidao.baidu.com/question/44242832.html

lzg756763959
2016-06-02
知道答主
回答量:22
采纳率:0%
帮助的人:14.8万
展开全部
Handler.ashx ? 引自网络... ----------- ASP.NET2.0 Person Web Site:将图片以二进制的从数据库读取 在ASP.NET Person Web Site Starter Kits中,图片的是以二进制的形式存放在数据库里,微软提供的读取该图片的方式是通过handler.ashx来实现的. 首先你所看到的对图片的引用都是类似如下 <img src="Handler.ashx?AlbumID=<%# Eval(" AlbumID")= %=> 的形式,也就是你所看到的每一个图片都由Handler.ashx动态生成,所以在你保存你所看到的"图片"时,它的命名都是Handler.ashx. 使用handler.ashx而不是handler.aspx来引用图片并不是一定的,换句话说,你可以将该文件改为handler.aspx并没有本质的区别,不过根据微软的文档,使用*.ashx作为扩展名的文档比*.aspx的文档性能高,因为它减少了控件树的生成. ---------- 这是handler.ashx代码: <%@ WebHandler Language="C#" Class="MyHandle" %> using System; using System.Web; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Web.Caching; using System.Data; public class MyHandle : IHttpHandler { public void ProcessRequest (HttpContext context) { //从数据库中取 MemoryStream ms = JSZ.SQLServerDAL.TestDAL.GetImage(1); DataTable dt = JSZ.SQLServerDAL.TestDAL.GetTable(1); Byte[] image = (Byte[])dt.Rows[0]["Photo"]; MemoryStream ms = new MemoryStream(image, 0, image.Length); if (ms != null) { //取得图像MemoryStream大小 int bufferSize = (int)ms.Length; //建立 buffer byte[] buffer = new byte[bufferSize]; //调用MemoryStream.Read,自MemoryStream 读取至buffer,并返回count int countSize = ms.Read(buffer, 0, bufferSize); //返回图像buffer context.Response.OutputStream.Write(buffer, 0, countSize); } } public bool IsReusable { get { return false; } } }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
掘金有术
2008-06-19 · 超过25用户采纳过TA的回答
知道答主
回答量:144
采纳率:0%
帮助的人:66.5万
展开全部
一般处理文件(ashx)可以输出任意类型的数据,比如文本,还有图片,甚至是其他特殊文档。而aspx只用于网页显示。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e7f1a4b
2016-05-18 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:93
采纳率:88%
帮助的人:45.7万
展开全部
ashx 文件,叫一般处理程序。

其实也就是封装了请求和响应,没有页面展示。就是负责获取客户端的请求,处理逻辑后,输出打印结果。
一般配合ajax编写功能模块。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappcy3tv95eaedrf
2016-08-01 · TA获得超过2363个赞
知道大有可为答主
回答量:1909
采纳率:92%
帮助的人:1099万
展开全部
这个是用于纯后台处理类型的页面,不像aspx的打开一般是一个网页。

这种设计上用于处理数据,然后可能需要返回结果,一般没有前台代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式