`
niunan
  • 浏览: 721520 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

ASP.NET中让图片以二进制的形式存储在数据库中

    博客分类:
  • .NET
阅读更多

    今早有个网友问到我这问题,以前我都是直接在数据库中存文件名的,还没有试过存储整张图片到数据库中,上网搜索了一下,自己又测试了一番,代码如下:
建立保存图片的表的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]

 

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

        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();
        } 

 

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

        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了。


源码下载:http://niunan.net/download/picsave2db.7z

分享到:
评论

相关推荐

    C# asp.net 图片存进数据库二进制和读取

    ### C# ASP.NET 图片存进数据库二进制与读取 #### 一、概述 在Web开发中,经常需要处理图片数据。特别是在ASP.NET框架下,如何将用户上传的图片存储到数据库,并且能够在需要时正确地读取出来显示或进行其他操作,...

    ASP.NET将图片以二进制的形式保存到数据库

    在ASP.NET开发中,将图片以二进制形式存储到数据库是一种常见的做法,尤其是在需要大量处理和管理图像数据的应用中。这种方法允许我们集中存储和检索数据,方便进行备份、恢复和搜索操作。以下是对这个主题的详细...

    ASP.NET DataList 绑定数据库二进制图片

    本文将详细介绍如何将存储在数据库中的二进制图片数据绑定到DataList,以便在网页上进行展示。我们将使用Visual Studio 2010作为开发工具,SQL Server 2008作为数据库管理系统。 首先,我们需要了解如何在数据库中...

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

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

    ASP.NET图片以二进制上传数据库,并从数据库中显示

    在ASP.NET开发中,有时候我们需要将图片以二进制形式存储到数据库中,然后从数据库中读取并显示。这个过程涉及到文件上传、数据库操作以及响应输出等技术。下面我们将详细讲解如何实现这个功能。 首先,图片上传至...

    asp.net实现从数据库中下载以二进制存储的图片

    ### ASP.NET 实现从数据库中下载以二进制存储的图片 #### 背景介绍 在Web开发中,经常需要处理图像等多媒体文件。这些文件通常体积较大且格式多样,因此选择合适的方式进行存储至关重要。一种常见的做法是将图片以...

    asp.net从数据库中读二进制生成word文件并转换为MHT文件

    在ASP.NET开发中,有时需要从数据库中读取存储的二进制数据,这些数据可能是各种类型的文件,例如Word文档。本示例介绍如何在ASP.NET环境中从数据库中读取二进制数据生成Word文件,并进一步将其转换为MHT(单个文件...

    Asp.net把图片存入数据库和读取图片的方法

    网上关于ASP.NET上传图片到数据库的资料非常多,常用的如下:存储图片类型数据有以下几种方式:1.将图片转换为二进制数组(byte[]) 代码如下:byte[] fileData = this.FileUpload1.FileBytes; 2. 根据路径将文件转换...

    aspnet(C#)实现从sqlserver数据库中下载以二进制存储的图片

    总结,ASP.NET(C#)从SQL Server数据库中下载以二进制存储的图片,涉及到数据库连接、SQL查询、二进制数据读取及HTTP响应的设置。这个过程对理解Web应用程序的数据交互和文件处理有重要作用,也是开发者必备的技能之...

    .net 图片的二进制数据库存储和显示

    1. **设置`ImageField`**:在`GridView`中添加一个`ImageField`控件,并设置其属性以从数据库中获取图片的二进制数据。 2. **绑定数据源**:将`GridView`的数据源设置为包含图片二进制数据的数据表。 ```csharp // ...

    图片以二进制的形式存储到数据库中和显示

    本文详细介绍了如何将图片以二进制形式存储到数据库中,并提供了几种有效的显示方法。通过这些技术手段,可以方便地将图片数据整合到Web应用中,从而提高用户体验和数据管理的灵活性。需要注意的是,在实际应用中还...

    图片以二进制流的形式存储到数据库中的源代码

    综上所述,这个项目展示了如何在SQL Server 2005数据库中以二进制流存储和检索图片,以及如何使用ASP.NET和C#实现这一功能。通过理解这些核心概念,开发者可以扩展到其他数据库系统和编程环境,实现更复杂的数据存储...

    ASP.NET二进制图片显示(C#)

    总的来说,"ASP.NET二进制图片显示(C#)"这个主题涵盖了从数据库中读取和显示二进制图片的关键技术。这包括C#中的图像处理、与SQL Server的交互以及在ASP.NET网页上的呈现。通过理解并掌握这些技术,开发者可以构建起...

    asp.net 二进制数据流显示图片

    在ASP.NET开发中,有时我们需要处理图片数据,例如从数据库中读取图片或者上传图片到服务器。本知识点将深入探讨如何使用C#语言通过二进制数据流来显示图片,这是在网络应用程序中处理图像文件的一种常见方法。我们...

    图片二进制存入数据&从数据库中读取图片显示

    ### 图片二进制存储与检索 #### 1. 图片转换为二进制数据 在计算机科学中,图片通常以二进制格式存储。这是因为图片本质上是由像素组成的,每个像素包含颜色信息,这些颜色信息可以通过数值来表示。将图片转换为二...

    C#实现把图片转换成二进制以及把二进制转换成图片的方法示例

    在上面的代码中,我们首先使用FileStream和BinaryReader将图片转换成二进制数组,然后使用ADO.NET将其保存到数据库中。 四、从数据库中读取图片 在C#中,可以使用ADO.NET从数据库中读取图片。具体实现代码如下: `...

    二进制流形式上传图片,然后前台显示图片示例(vs2005+sql2005)

    在IT领域,尤其是在Web开发中,将图片以二进制流的形式存储在数据库中是一种常见的做法,这在处理大量图像数据或需要高效访问时尤其有用。本示例以Visual Studio 2005 (VS2005) 和 SQL Server 2005 (SQL2005) 为开发...

    ASP.NET使用fileupload控件上传图片

    本文将详细介绍如何使用ASP.NET中的`FileUpload`控件来实现图片的上传,并进一步探讨如何将图片保存到服务器上的指定文件夹以及如何将图片以二进制形式存储到数据库中。 #### 二、FileUpload 控件介绍 `FileUpload...

    ASP.NET 存取二进制图片

    在这个场景下,我们需要将图片转换为二进制数据存储到数据库(例如SQL Server 2008),然后在前端页面上以图片形式展示出来。以下是一个详细的步骤介绍: 首先,我们需要创建一个ASP.NET Web应用程序,使用Visual ...

Global site tag (gtag.js) - Google Analytics