上传下载保存到数据库的image字段中的文件

原创 2007年09月26日 09:51:00
Asp.Net在SqlServer中的图片存取技术    
  在使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来    
   
  一,上传并存入SqlServer    
    数据库结构    
      create   table   test    
      {    
            id   identity(1,1),    
            FImage   image    
      }    
      相关的存储过程    
      Create   proc   UpdateImage    
      (    
            @UpdateImage   Image    
      )    
      As    
      Insert   Into   test(FImage)   values(@UpdateImage)    
      GO    
   
  在UpPhoto.aspx文件中添加如下:    
  <input   id="UpPhoto"   name="UpPhoto"   runat="server"   type="file">    
  <asp:Button   id="btnAdd"   name="btnAdd"   runat="server"   Text="上传"></asp:Button>    
   
  然后在后置代码文件UpPhoto.aspx.cs添加btnAdd按钮的单击事件处理代码:    
  private   void   btnAdd_Click(object   sender,   System.EventArgs   e)    
  {    
                  //获得图象并把图象转换为byte[]    
                  HttpPostedFile   upPhoto=UpPhoto.PostedFile;    
                  int   upPhotoLength=upPhoto.ContentLength;    
                  byte[]   PhotoArray=new   Byte[upPhotoLength];    
                  Stream   PhotoStream=upPhoto.InputStream;    
                  PhotoStream.Read(PhotoArray,0,upPhotoLength);    
   
                  //连接数据库    
                  SqlConnection   conn=new   SqlConnection();    
                  conn.ConnectionString="Data   Source=localhost;Database=test;User   Id=sa;Pwd=sa";    
   
                  SqlCommand   cmd=new   SqlCommand("UpdateImage",conn);    
                  cmd.CommandType=CommandType.StoredProcedure;    
   
                  cmd.Parameters.Add("@UpdateImage",SqlDbType.Image);    
                  cmd.Parameters["@UpdateImage"].Value=PhotoArray;    
   
                  //如果你希望不使用存储过程来添加图片把上面四句代码改为:    
                  //string   strSql="Insert   into   test(FImage)   values(@FImage)";    
                  //SqlCommand   cmd=new   SqlCommand(strSql,conn);    
                  //cmd.Parameters.Add("@FImage",SqlDbType.Image);    
                  //cmd.Parameters["@FImage"].Value=PhotoArray;    
   
    conn.Open();    
    cmd.ExecuteNonQuery();    
    conn.Close();    
  }    
   
  二,从SqlServer中读取并显示出来    
  在需要显示图片的地方添加如下代码:    
  <asp:image   id="imgPhoto"   runat="server"   ImageUrl="ShowPhoto.aspx"></asp:image>    
   
  ShowPhoto.aspx主体代码:    
  private   void   Page_Load(object   sender,   System.EventArgs   e)    
  {    
            if(!Page.IsPostBack)    
            {    
                                  SqlConnection   conn=new   SqlConnection()    
                                  conn.ConnectionString="Data   Source=localhost;Database=test;User   Id=sa;Pwd=sa";    
                                   
                                  string   strSql="select   *   from   test   where   id=2";//这里假设获取id为2的图片    
                                  SqlCommand   cmd=new   SqlCommand()    
                                  reader.Read();    
                                  Response.ContentType="application/octet-stream";    
                                  Response.BinaryWrite((Byte[])reader["FImage"]);    
                                  Response.End();    
                                  reader.Close();    
            }    
  }     
   

相关文章推荐

ASP.NET MVC文件上传下载Demo(文件保存在数据库)

ASP.NET MVC文件上传下载Demo(文件保存在数据库)

Oracle blob字段上传下载

  • 2009年08月24日 18:29
  • 5KB
  • 下载

SpringMVC文件的上传下载及数据库EXCEL导出

前段时间要做文件的上传下载,现在把它写出来,供大家分享 首先是excel导出数据库 @RequestMapping("/exportCustomer") public void exp...

java__文件上传下载到数据库

  • 2015年09月07日 16:35
  • 272KB
  • 下载

文件上传表单 上传文件的细节 文件上传下载和数据库结合 - Mr_Red

原文  http://www.cnblogs.com/sunhan/p/3519829.html 主题 数据库 HTML Java 1 文件上传表单   1)上传文...

ASP.NET中文件上传下载方法集合(上传限制,保存方式-二进制或文件形式,上传Internet上的资源 )

文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括:   1、如何解决文件上传大小的限制   2、以文件形式保存到服务器   3、转换成二...

c#读写MSSQL数据库image字段内容

一:MSSQL帮助说明     Microsoft SQL Server 2005 将超过 8,000 个字符的字符串和大于 8,000 字节的二进制数据存储为名为 text 和 image 的特殊...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:上传下载保存到数据库的image字段中的文件
举报原因:
原因补充:

(最多只允许输入30个字)