将图片以二进制存储到数据库中

来源:互联网 发布:gps nema 数据解析 编辑:程序博客网 时间:2024/05/16 07:49
1、建所需数据库和表,语句如下:  --建立数据库create database test--使用该数据库use test--建立存放图片的表create table piclist( id int Identity primary key,    pic Image not null)2、制作上传图片的模块,代码如下:前台html代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpPhoto.aspx.cs" Inherits="Test_UpPhoto" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server">    <title>无标题页</title></head><body>    <form id="form1" runat="server">    <div>            <input id="UpPhoto" name="UpPhoto" runat="server" type="file" />             <asp:Button id="btnAdd" runat="server" Text="上传" OnClick="btnAdd_Click"></asp:Button>    </div>    </form></body></html>后台代码:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.IO;using System.Data.SqlClient;public partial class Test_UpPhoto : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {    }    protected void btnAdd_Click(object sender, 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);        //连接数据库         string ConStr = "server=(local);user id=sa;pwd=sa;database=test";        SqlConnection conn = new SqlConnection(ConStr);                string strSql = "Insert into piclist(pic) values(@pic)";        SqlCommand cmd = new SqlCommand(strSql, conn);        cmd.Parameters.Add("@pic", SqlDbType.Image);        cmd.Parameters["@pic"].Value = PhotoArray;         conn.Open();        cmd.ExecuteNonQuery();        conn.Close();        Response.Write("图片上传成功");    }}3、制作显示图片的模块(单独显示图片,即没用到datalist):后台代码:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using System.IO;public partial class Test_ShowPhoto : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {         if(!Page.IsPostBack)         {            //连接数据库             string ConnStr = "server=(local);user id=sa;pwd=sa;database=test";            string strSql = "select * from piclist";            SqlConnection conn = new SqlConnection(ConnStr);            conn.Open();            SqlCommand cmd=new SqlCommand(strSql,conn);            SqlDataReader reader = cmd.ExecuteReader();            while (reader.Read())            {                Response.ContentType = "application/octet-stream";                Response.BinaryWrite((Byte[])reader["pic"]);                Response.Write("successful");            }              reader.Close();             conn.Close();             Response.End();        }     }} 补充步骤3,用datalist显示图片方法:建立两个asp.net 页面,名称为piclist.aspx和StreamImg.aspx。piclist.aspx前台代码为:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="piclist.aspx.cs" Inherits="Test_Test" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server">    <title>无标题页</title></head><body>    <form id="form1" runat="server">    <div>    <asp:DataList ID="dlContent" runat="server" Width="554px">            <ItemTemplate>              <table cellpadding="0" cellspacing="0">                                <tr>                                <td style="width: 554px; text-align: left; background-image: url(Image/标头.jpg); height: 26px;">                                            <img id='img1' src='StreamImg.aspx?id= <%# DataBinder.Eval(Container.DataItem,"id") %>'>                                            </a>                                   </a>                                </td>                           </tr>                </table>            </ItemTemplate>        </asp:DataList>    </div>    </form></body></html>piclist.aspx后台代码为:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using System.IO;public partial class Test_Test : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        if (!Page.IsPostBack)        {            //连接数据库             string ConnStr = "server=(local);user id=sa;pwd=sa;database=test";            SqlConnection sqlcon = new SqlConnection(ConnStr);            sqlcon.Open();            string sqlstr = "select id from piclist";            SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlcon);            DataSet ds = new DataSet();            MyAdapter.Fill(ds, "tb_pic");            this.dlContent.DataSource = ds;            this.dlContent.DataBind();            sqlcon.Close();        }    }}StreamImg.aspx无前台代码,后台代码为:using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.SqlClient;using System.IO;public partial class StreamImg : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        //string type = Request.QueryString["pt"];        int id = Convert.ToInt32(Request.QueryString["id"]);        ShowPic(id);    }        private void ShowPic(int id)    {        //连接数据库         string ConnStr = "server=(local);user id=sa;pwd=sa;database=test";        string strSql = "select * from piclist where id='"+ id +"'";        SqlConnection conn = new SqlConnection(ConnStr);        conn.Open();        SqlCommand cmd = new SqlCommand(strSql, conn);        SqlDataReader reader = cmd.ExecuteReader();        while (reader.Read())        {            Response.ContentType = "application/octet-stream";            Response.BinaryWrite((Byte[])reader["pic"]);            Response.Write("successful");        }        reader.Close();        conn.Close();        Response.End();    } }
原创粉丝点击