asp.net问题ashx文件有什么用
6个回答
展开全部
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;
}
}
}
引自网络...
-----------
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
展开全部
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; } } }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般处理文件(ashx)可以输出任意类型的数据,比如文本,还有图片,甚至是其他特殊文档。而aspx只用于网页显示。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ashx 文件,叫一般处理程序。
其实也就是封装了请求和响应,没有页面展示。就是负责获取客户端的请求,处理逻辑后,输出打印结果。
一般配合ajax编写功能模块。
其实也就是封装了请求和响应,没有页面展示。就是负责获取客户端的请求,处理逻辑后,输出打印结果。
一般配合ajax编写功能模块。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是用于纯后台处理类型的页面,不像aspx的打开一般是一个网页。
这种设计上用于处理数据,然后可能需要返回结果,一般没有前台代码。
这种设计上用于处理数据,然后可能需要返回结果,一般没有前台代码。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询