• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP.NET实现图片以二进制的形式存入数据库

    本文以实例形式讲述了ASP.NET实现图片以二进制的形式存入数据库的方法。过去我们都是直接在数据库中存入图片文件名的,还没有试过存储整张图片到数据库中,经过一番资料查询与测试,整理出了如下的功能代码:

    1.建立保存图片的表的SQL语句:

    USE [niunantest] 
    GO 
    /****** 对象: Table [dbo].[picdata]  脚本日期: 03/30/2010 14:51:58 ******/ 
    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    CREATE TABLE [dbo].[picdata]( 
      [id] [int] IDENTITY(1,1) NOT NULL, 
      [content] [image] NULL, 
      [createdate] [datetime] NOT NULL CONSTRAINT [DF_picdata_createdate] DEFAULT (getdate()), 
     CONSTRAINT [PK_picdata] PRIMARY KEY CLUSTERED  
    ( 
      [id] ASC 
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 
    
    

    2.下面是保存图片到数据库中的代码片段:

    int len = fu.PostedFile.ContentLength; // 图片大小 
    byte[] pic = new byte[len]; // 创建一个字节数组,大小为图片的大小,数据库中就存储这个东西 
    fu.PostedFile.InputStream.Read(pic, 0, len); // 把上传控件中的文件用二进制读取存到pic字节数组中 
    //  插入图片到数据库中    
    SqlConnection connection = new 
    SqlConnection(@"server=.\sqlexpress;database=niunantest;uid=sa;pwd=123456"); 
    try 
    { 
      connection.Open(); 
      SqlCommand cmd = new SqlCommand("insert  into  picdata  " 
      + "([content])  values  (@pic)", connection); 
      cmd.Parameters.Add("@pic", pic); 
      cmd.ExecuteNonQuery(); 
      Label1.Text = "图片插入数据库成功!"; 
     
      Image1.ImageUrl = "getpic.ashx?t=" + DateTime.Now.Ticks; // 显示刚刚插入数据库的图片 
    } 
    finally 
    { 
      connection.Close(); 
    }  
     
    
    

    3.下面是从数据库中取出图片的代码片段:

    MemoryStream stream = new MemoryStream(); 
    SqlConnection connection = new 
    SqlConnection(@"server=.\sqlexpress;database=niunantest;uid=sa;pwd=123456"); 
    try 
    { 
      connection.Open(); 
      SqlCommand command = new 
      SqlCommand("select top 1 [content]  from  picdata order by id desc", connection); 
      byte[] image = (byte[])command.ExecuteScalar(); 
      stream.Write(image, 0, image.Length); 
      Bitmap bitmap = new Bitmap(stream); 
      context.Response.ContentType = "image/jpeg"; 
      bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); 
    } 
    finally 
    { 
      connection.Close(); 
      stream.Close(); 
    }
    
    

    程序的原理其实也就是通过流把图片搞成字节数组再存到数据库中,然后再从数据库中读取字节数组出来,再通过字节数组创建流,再通过流把图像输出出来,发现你存到数据库中的是gif图像的话再取出来是可以把他转为jpg的图像的,因为在取出图像的时候我们设置他的ContentType是image/jpeg了。

    您可能感兴趣的文章:
    • asp.net 上传下载输出二进制流实现代码
    • asp.net 字符串、二进制、编码数组转换函数
    • asp.net(c#)实现从sqlserver存取二进制图片的代码
    • asp.net 将一个图片以二进制值的形式存入Xml文件中的实例代码
    • asp.net实现图片以二进制流输出的两种方法
    • 在ASP.NET 2.0中操作数据之五十二:使用FileUpload上传文件
    • 在ASP.NET 2.0中操作数据之五十三:在Data Web控件显示二进制数据
    • 在ASP.NET 2.0中操作数据之五十四:添加新记录时包含一个文件上传选项
    • 在ASP.NET 2.0中操作数据之五十五:编辑和删除现有的二进制数据
    上一篇:Web系统通过EXE文件实现读取客户电脑MAC等硬件信息且兼容非IE浏览器
    下一篇:ASP.NET过滤HTML字符串方法总结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ASP.NET实现图片以二进制的形式存入数据库 ASP.NET,实现,图片,以,二进制,