专注于网站技术与网络营销的博客

赞助商链接

« 透明Flash效果在Firefox中无法达到效果的解决办法增强HTC P4550恺撒来电铃声音量 »

在ASP.NET中将图像保存到SQL Server 2000数据库

       上一次用到这样的功能是在去年的时候,是在开发一个彩信接收的管理平台,使用的是ASP.NET+Oracle,事隔已久,今天突然需要用到这个功能,不过存储的数据库是SQL SERVER2000,于是将实现的方法写上来。同时在后面这个功能源文件的下载。

 

在VS2005中新建好一个项目,两个.aspx文件,一个用来上传图片、另一个用来显示上传的图片。一般的情况下大家开发都是将图片存放在服务器的某个文件夹下面,采用直接读取文件的方式来完成图像文件的在程序应用中的使用;但是在某些场合可能需要用到将图片保存在数据库中以求达到更好的保密性等。比如OA中对于公司电子印章的保存、人事系统中人员寸照等等地方。

 

上传图片的界面:

tmp1FC

 

保存图片部分代码:

protected void Btn_Save_Click(object sender, EventArgs e)
{
    int ImageLen = this.FileUpload1.PostedFile.ContentLength;
    byte[] Image = new byte[ImageLen];
    this.FileUpload1.PostedFile.InputStream.Read(Image, 0, ImageLen);

    SqlConnection Conn = new SqlConnection(@"server=localhost;database=Test;uid=test;pwd=123456");

    Conn.Open();
    SqlCommand cmd = new SqlCommand("INSERT INTO Images_Info (Image_Name,Image_Content) VALUES (@Image_Name,@Image_Content)",Conn);
    cmd.Parameters.Add("@Image_Name", SqlDbType.VarChar);
    cmd.Parameters.Add("@Image_Content", SqlDbType.Image);
    cmd.Parameters[0].Value = this.TextBox1.Text.ToString();
    cmd.Parameters[1].Value = Image;
    cmd.ExecuteNonQuery();
}

 

显示图片的界面:

tmp1FE

显示图片部分代码:

protected void Page_Load(object sender, EventArgs e)
{
    MemoryStream Stream = new MemoryStream();
    SqlConnection Conn = new SqlConnection(@"server=localhost;database=Test;uid=test;pwd=123456");
    Conn.Open();
    SqlCommand cmd = new SqlCommand("SELECT Image_Content FROM Images_Info Order BY Image_ID ASC", Conn);
    byte[] image = (byte[])cmd.ExecuteScalar();
    Stream.Write(image, 0, image.Length);
    Bitmap bitmap = new Bitmap(Stream);
    Response.ContentType = "image/gif";
    bitmap.Save(Response.OutputStream, ImageFormat.Gif);
}

 

Demo下载地址:http://blog.hnce.net/doc/Image_Into_SQL.zip

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-Blog 1.8 Spirit Build 80710

Copyright 2005 - 2008, 完美生活(专注于网站技术与网络营销的博客). Some Rights Reserved.