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

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();    
            }    
  }     
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值