网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET 2.0编程技巧之用Response对象输出图像

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/13

Response.Flush();
}
</script>
<html>
<head>
</head>
<body>
<form runat="server">
</form>
</body>
</html>

接下来,让我们讨论本文重点—如何在ASP页面中输出直接存储在数据库中的图像数据。

三、 事件设计

示例工程中的DispImage.aspx页面在其初始化函数Page_Load(object sender,EventArgs e)中使用Response对象输出一幅图像—该图像存储在SQL Server 2005 Express Edition数据库中,并用二进制表示。
在代码中,我们首先从数据库PictureDB的表格PictureTab中获取一个ID值为1的图片,然后使用byte数组Data保存图片的数据。然后,我们可以基于如下步骤来输出相应的图像:

1. 设置Response对象的输出类型;
2. 输出图像的文件头;
3. 输出图像的二进制数据;
4. 结束输出。如果图片太大,还可以使用输出缓冲的方法。
函数Page_Load(object sender,EventArgs e)的程序代码如下:

1protected void Page_Load(object sender,EventArgs e)
2{ /**////创建链接
3SqlConnection myConnection = new SqlConnection(
4ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);
5/**////定义SQL语句
6string cmdText = "SELECT * FROM PictureTab WHERE PictureID=''1''";
7/**////创建Command
8SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
9/**////定义DataReader
10SqlDataReader dr = null;
11try
12{ /**////打开链接
13myConnection.Open();
14/**////读取数据
15dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
16}
17catch(SqlException ex)
18{ /**////抛出异常
19throw new Exception(ex.Message,ex);
20}
21/**////定义保存数据的字节数组
22byte Data = null;
23while(dr.Read())
24{ /**////读取数据
25Data = (byte)dr["Data"];
26Response.ContentType = dr["Type"].ToString();
27}
28dr.Close();
29//显示图片数据
30this.EnableViewState = false;
31/**////输出文件头
32Response.AppendHeader("Content-Length",Data.Length.ToString());
33/**////输出文件的数据
34Response.BinaryWrite(Data);
35/**////结束输出
36Response.End();
37}

 

四、 附注与小结

把上面的页面DispImage.aspx设置为初始页面,然后运行上面的示例工程。此时,页面上应该显示一张存储在数据库表格中的图片。

在实践中,有些情况下需要把图像数据直接存储在数据库中;而有些情况下只在数据库存储图像文件的URL而把实际图像文件存储在服务器文件系统中则更好。从性能上看,将这种大型数据存储为文件肯定要快一些,而且图形人员能够更为容易地访问图像并对其编辑。然而,当需要在不同机器间移动数据库时,将这种大型数据存储为文件就会面临最棘手的问题,因为文件很容易断开与数据库的连接。因此,如果将其直接存储在数据库中则明显可以使数据保持轻松的同步。总之,各有利弊,需慎重做出选择。

  • 上一篇资讯: 用ashx动态生成文件
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号