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

用ASP.NET2.0在数据库中存储二进制文件

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
况很有必要把二进制数据存储在文件系统中。

  三、 创建一个存储二进制数据的数据库表格

  本文中的其它部分将分析一个简单的ASP.NET2.0图像画廊应用程序,我使用微软SQL Server 2005 Express Edition编写的,用于展示本文所阐述的直接从一个数据库中存储和检索二进制数据的相关概念。

  这个图像画廊应用程序的数据模型包括一个表格-Pictures,其中的每一个记录对应画廊中的一幅图片。这个Pictures表格的MIMEType域中存储了上载图像(对于JPG文件是image/jpeg,对于GIF文件是image/gif,等等)的MIME类型;这里的MIME类型向浏览器指定如何生成该二进制数据。其中的ImageData列则存储了该图片实际的二进制内容。
  四、 上传一个图像并使用ADO.NET代码存储二进制数据

  这个图像画廊允许访问者上传图片文件(GIF,JPG和PNG格式)到这个应用程序中。一旦上传,一个新的记录将被添加到Pictures表格并且该图像文件的内容即被存储在新的记录的ImageData列内。为了实现在ASP.NET 2.0中把文件从web浏览器端上传到web服务器,本示例中使用了FileUpload控件。FileUpload控件的使用方法是很简单的事情-只需要把它从工具栏拖动到你的页面上即可。最终,这个FileUpload控件将在用户的浏览器端生成为标准的文件上传形式-一个"Browse"按钮(当点击它时)允许用户从他们的硬盘中选择一个文件上传到web服务器。

  例如,为了创建一个接口以实现添加一个新的图像,我使用一个TextBox控件来捕获图片的标题,还有一个FileUpload控件用于允许用户指定要上传的图像:

<b>Title:</b>
<asp:TextBox ID="PictureTitle" runat="server" />
<br />
<b>Picture:</b>
<asp:FileUpload ID="UploadedFile" runat="server" />
<br />
<asp:LinkButton ID="btnInsert" runat="server" Text="Insert" />
<asp:LinkButton ID="btnCancel" runat="server" Text="Cancel" />

  上面的代码创建一个页面,用户能够从他们的硬盘上指定一个要上传到web服务器的文件。

  一旦用户选择了一个文件并且寄送了这个表单(例如通过点击"Insert"按钮),那么,指定文件的二进制内容即被寄送到web服务器。从服务器端代码中,这种二进制数据通过FileUpload控件的PostedFile.InputStream属性成为可用,这正如下面的标记和代码所展示的:

Protected Sub btnInsert_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnInsert.Click
''确保一个文件被成功上传
If UploadedFile.PostedFile Is Nothing OrElse String.IsNullOrEmpty(UploadedFile.PostedFile.FileName) OrElse UploadedFile.PostedFile.InputStream Is Nothing Then
  显示错误信息
 Exit Sub
End If
''确保我们在操作一个JPG或者GIF文件
Dim extension As String = Path.GetExtension(UploadedFile.PostedFile.FileName).ToLower()
Dim MIMEType As String = Nothing
Select Case extension
 Case ".gif"
  MIMEType = "image/gif"
 Case ".jpg", ".jpeg", ".jpe"
  MIMEType = "image/jpeg"
 Case ".png"
  MIMEType = "image/png"
 Case Else
  ''无效的文件类型上传
   显示错误信息
  Exit Sub
End Select

''与数据库连接并且把一条新记录插入到Products表格中
Using myConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("ImageGalleryConnectionString").ConnectionString)

Const SQL As String = "INSERT INTO [Pictures] ([Title], [MIMEType], [ImageData]) VALUES (@Title, @MIMEType, @ImageData)"
Dim myCommand As New SqlCommand(SQL, myConnection)
myCommand.Parameters.AddWithValue("@Title", PictureTitle.Text.Trim())
myCommand.Parameters.AddWithValue("@MIMEType", MIMEType)

''把FileUpload控件的InputStream加载到字节数组中
Dim imageBytes(UploadedFile.PostedFile.InputStream.Length) As Byte
UploadedFile.PostedFile.InputStream.Read(imageBytes, 0, imageBytes.Length)
 myCommand.Parameters.AddWithValue( "@ImageData", imageBytes)
 myConnection.Open()
 myCommand.ExecuteNonQuery()
 myConnection.Close()
End Using
End Sub


  • 下一篇资讯: ASP.NET 2.0页面性能优化
  • 网学推荐

    免费论文

    原创论文

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