SQL Server:存储图片和BLOB文件(四)
本文将为大家介绍第二种存储BLOB文件的方法,也就是把BLOB文件存储到Windows文件系统当中,并利用SQL Server从一个网页对这些文件进行管理。
【IT专家网独家】内容提要
BLOB文件(二进制大对象)是二进制数据,换而言之,就是非文本数据。像MP3、可执行文件、图片等都是BLOB文件。这些类型的文件通常是大型数据库项目的一个组成部分。问题也就随之而来了:要怎样存储这些文件呢?而将它们存到哪里呢?存在文件系统里还是放到SQL Server数据库内部呢?无论采用哪种存储方法,都有其各自的道理。笼统一点说来,如果文件比较小,就将它们存放在SQL Server数据库内部。而且,支持将二进制数据存储在SQL Server内部的另一个原因是有利于事务控制。例如,如果你在进行下一个处理步骤之前需要确认已经更新或删除了某张图片,那可以通过SQL Server内部控制这些过程。而另一方面,如果二进制文件很大,或者是视频流文件,那存储在Windows的文件系统中比存储在SQL Server内部对数据库的性能更有利。再者,文件系统对碎片的处理要优于SQL Server。
在本系列的前三篇文章中,主要为大家介绍了如何将BLOB文件存储在SQL Server内部。第一篇文章SQL Server:存储图像和BLOB文件(一)简单介绍了BLOB的定义和VARCHAR的数据类型家族,并讨论了将BLOB插入到SQL Server的一些简单方法。第二篇文章SQL Server:存储图像和BLOB文件(二)介绍了如何利用Response.BinaryWrite将从数据库读出的图片显示到浏览器网页上。在第三篇文章SQL Server:存储图像和BLOB文件(三)中,通过创建ASPX页面来接受来自网页的图片并直接将其存储到SQL Server当中。本文将为大家介绍第二种存储BLOB文件的方法,也就是把BLOB文件存储到Windows文件系统当中,并利用SQL Server从一个网页对这些文件进行管理。
文件系统实例
首先,我们要构建一个可以用在前面的文章中所举例子的控件——文件上传(File Upload)控件。该控件可以嵌入到网页当中,并搜集文件信息,例如某测试图片的文件名、目录路径,最终将这些信息传递给SQL Server。具体操作就是,创建一个名为FileSystemIn.aspx的代码分离新页面,将四个控件拖拽到该页面上,包括一个文件上传控件、一个按钮控件(button)和两个标签(label),如下图所示:

为了便于解释,在例图上使用的是默认控件名,实际应用中可自行更改。
| <asp:FileUpload ID="FileUpload1" runat="server" /> <br /> <br /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> <br /> <br /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <br /> <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label> |
在代码分离页面上,我们将搜集文件名和目录路径,并将它们分别显示到两个标签上。创建点击事件,并插入如下代码:
- 本文关键词:

