广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    在ASP.net中保存/取出图片入/从SQL数据库(可用于上传图片)

    2018-04-16 10:58:04 次阅读 稿源:互联网
    广告

      一、把图片存入数据库中
       
      用到以下几个方面的知识:
      1. 使用流对象
      2. 查找准备上传的图片的大小和类型
      3.怎么使用InputStream方法

      插入图片的必要条件
      1.#Form 标记的 enctype 属性应该设置成 enctype="multipart/form-data"
      2.# 需要一个<input type=file>表单来使用户选择他们要上传的文件,同时我们需要导入 System.IO名称空间来处理流对象
      对SqlServer做以下的准备
      1.# 需要至少含有一个图片类型的字段的表
      2.# 如果我们还有另外一个变字符类型的字段来存储图片类型,那样会更好一些。

      窗体控件
      1.插入图片用到的是System.Web.UI.HtmlControls.HtmlInputFile控件,我们在webform中放入这个控件,取名为“imgInput”
      2.同时再放入一个确认上传按钮“Button1”

      程序代码
      AddImg,用于返回要上传的图片内容

       1Private Function AddImg()Function AddImg(ByVal InputImg As System.Web.UI.HtmlControls.HtmlInputFile, ByVal ImgType As String, ByVal MaxSize As Int64) As Byte()
       2'传入一个htmlinputfile控件,一个上传图片格式和一个上传图片最大值,返回图片的内容,既要写入数据库中的内容,你也可以同时写入图片类型
       3        Dim intImageSize As Int64
       4        Dim strImageType As String
       5        Dim ImageStream As Stream
       6        ' Gets the Image Type
       7   strImageType=InputImg.PostedFile.ContentType
       8        If strImageType <> ImgType Then
       9            Response.Write("<script>alert('图片类型为""')</script>") 'jgp类型为"image/pjpeg"
      10            Exit Function
      11        End If
      12        ' Gets the Size of the Image
      13        intImageSize = InputImg.PostedFile.ContentLength
      14        If intImageSize > MaxSize Then
      15            Response.Write("<script>alert('图片不得大于K')</script>")
      16            Exit Function
      17        End If
      18        ' Reads the Image
      19        ImageStream = InputImg.PostedFile.InputStream
      20        Dim ImageContent(intImageSize) As Byte
      21        Dim intStatus As Integer
      22        intStatus = ImageStream.Read(ImageContent, 0, intImageSize)
      23        Return ImageContent
      24    End Function
      示例调用

      Dim imageContent() As Byte
             imageContent = AddImg(fileImg, "image/pjpeg", 512000)'上传图片类型为jpg,最大不超过500K

      插入数据库

      我想这部分就不用写了吧,你可以用任何方式(推荐使用存储过程),将imageContent插入到数据库中类型为image的字段就行了。

      二、把图片从数据库中读出

      这部分比较简单:

      假设img变量是你从数据库中取出的图片内容
      那么直接使用
      Response.BinaryWrite(img)
      就可以将图片输出到页面上了

      三:总结

      将图片存放在数据库中其实是起到了图片保护的作用,这样就算别人浏览你的机器也看不到你的图片,也可以用来保护重要的图片资料。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告