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文件的作用详解相关推荐

  1. linux文件目录:Linux中各目录(文件夹)作用详解(持续更新)

    进入Linux系统,我们就是畅游在各种目录文件中,毕竟Linux是"文件系统",文件的存放就是在目录下面,那我们了解下"Linux中各目录(文件夹)作用详解"还 ...

  2. STM32中stm32f0xx_flash.icf文件的作用详解!

    每个芯片开发商都会针对每款芯片来编写一个.icf文件就是传说中的链接文件.对于基本的应用,这个.icf文件足以满足你的工程需要.但有时也会需要改动,比如当你的项目要添加外部RAM时就要修改一下icf. ...

  3. 微信小程序项目中JSON文件的作用详解

    在微信小程序开发项目中,会包含多个JSON文件,不同的JSON文件会有不同的作用,下面就微信小程序开发中的json文件进行说明. JSON配置文件: json 是一种数据格式,在实际开发中,json总 ...

  4. VMware虚拟机文件夹中各文件作用详解

    VMware虚拟机文件夹中各文件作用详解 虚拟机的文件管理由VMware Workstation来执行. 一个虚拟机一般以一系列文件的形式储存在宿主机中, 这些文件一般在由workstation为虚拟 ...

  5. atitit.mp4 视频文件多媒体格式结构详解

    atitit.mp4 视频文件多媒体格式结构详解 1. 一.基本概念1 2. MP4文件概述2 3. mp4是由一个个"box"组成的,2 4. 典型简化mp43 5. Fragm ...

  6. Android init.rc文件解析过程详解(三)

    Android init.rc文件解析过程详解(三) 三.相关结构体 1.listnode listnode结构体用于建立双向链表,这种结构广泛用于kernel代码中, android源代码中定义了l ...

  7. Xposed源码剖析——app_process作用详解

    Xposed源码剖析--app_process作用详解 首先吐槽一下CSDN的改版吧,发表这篇文章之前其实我已经将此篇文章写过了两三次了.就是发表不成功.而且CSDN将我的文章草稿也一带>删除掉 ...

  8. php文件上传详解,PHP文件上传实例详解!!!

    这篇文章主要介绍了PHP文件上传实例代码,需要的朋友可以参考下 首先来看下上传部分的表单代码: 文件:  这里有几个要注意的地方,首先看这句 ,这里我们采用POST方法,个别浏览器还支持PUT方法,当 ...

  9. Linux(centos)系统各个目录的作用详解

    转自:Linux(centos)系统各个目录的作用详解 现在公司的服务器使用CentOS系统,在网上找到了这篇介绍linux各个目录的文章,觉得十分不错,所以拿来存个档. 整理之后如下: 文件系统的类 ...

最新文章

  1. 2022-2028年中国自动驾驶系统行业现状调研分析报告
  2. 多倍体单体型组装算法研究
  3. 解决apt-get /var/lib/dpkg/lock-frontend 问题
  4. Vue—基础概念—实例
  5. 在VS2003下把一个DataTable Update 到数据库
  6. ARM发布自动驾驶芯片架构,重新宣示车载系统市场的主权
  7. C语言指针函数和函数指针区别
  8. matlab arma 仿真,基于Matlab的ARMA模型时间序列分析法仿真
  9. 什么是CMA?你对CMA证书了解多少?
  10. Windows 10, version 22H2 (released Oct 2022) 简体中文版、英文版下载
  11. redisRDB持久化中dir路径配置问题
  12. QT 析构的报错Cannot send events to objects owned by a different thread.
  13. 室友在宿舍玩游戏我学java_在宿舍写代码总被一个室友认为在装逼,该怎么办?...
  14. 局部加权回归LOESS
  15. 1688获得店铺的所有商品教程
  16. 燃气热水器出现e4故障是怎么回事?
  17. Notepad++更改背景颜色(护眼色)
  18. 6-27 实验9_7_设计函数int getVowel(char str[],char vowel[]); (100 分)
  19. 嵌入式软件工程师就业方向有哪些呢?
  20. 达观数据:文本大数据的机器学习自动分类方法

热门文章

  1. 基于springboot框架的校园跑腿快递管理系统的设计与实现.rar(论文+项目源码)
  2. 一个能看懂的Redis思维导图
  3. 计算机电缆编织密度标准,计算机电缆执行标准
  4. Android中的蓝牙知识
  5. java 访问linux 根目录_paip兼容windows与linux的java类根目录路径的方法 | 学步园
  6. Ubuntu apparmor何方神圣
  7. vue+element-ui之tree树形控件有关子节点和父节点之间的各种选中关系详解
  8. 软件测试基础-测试用例设计方法(等价类+边界值)
  9. 对 onreadystatechange 属性的理解
  10. 戴德金--连续性和无理数--我自己做的中文翻译第6页