最近捣鼓了一下,效果就是这样:
图1:
图2:
ImageFileUpload.aspx:
<! 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 = " Form2 " enctype = " multipart/form-data " runat = " server " >
< asp:Table ID = " Table1 " Runat = " server " Width = " 39% " BorderWidth = " 1 " BackColor = " Beige " >
< asp:TableRow runat = " server " >
< asp:TableCell ColumnSpan = " 2 " BackColor = " Red " runat = " server " >
< asp:Label ID = " Label1 " Font - size = " 12px " ForeColor = " White " font - bold = " True " Runat = " server " Text = " 添加 " Font - Names = " verdana " />
</ asp:TableCell >
</ asp:TableRow >
< asp:TableRow runat = " server " >
< asp:TableCell HorizontalAlign = " Right " runat = " server " >< asp:Label ID = " Label2 " Font - size = " 12px " Runat = " server " Text = " 名字 " Font - Names = " verdana " /></ asp:TableCell >
< asp:TableCell runat = " server " >< asp:TextBox id = " txtPersonName " Runat = " server " /></ asp:TableCell >
</ asp:TableRow >
< asp:TableRow runat = " server " >
< asp:TableCell HorizontalAlign = " Right " runat = " server " >< asp:Label ID = " Label3 " Font - size = " 12px " Runat = " server " Text = " Email " Font - Names = " verdana " /></ asp:TableCell >
< asp:TableCell runat = " server " >< asp:TextBox id = " txtPersonEmail " Runat = " server " /></ asp:TableCell >
</ asp:TableRow >
< asp:TableRow runat = " server " >
< asp:TableCell HorizontalAlign = " Right " runat = " server " >< asp:Label ID = " Label4 " Font - size = " 12px " Runat = " server " Text = " 性别 " Font - Names = " verdana " /></ asp:TableCell >
< asp:TableCell runat = " server " >
< asp:RadioButton GroupName = " sex " Font - Size = " 12px " Text = " 男性 " ID = " sexMale " Runat = " server " Checked = " true " />
< asp:RadioButton GroupName = " sex " Font - Size = " 12px " Text = " 女性 " ID = " sexFeMale " Runat = " server " />
</ asp:TableCell >
</ asp:TableRow >
< asp:TableRow runat = " server " >
< asp:TableCell HorizontalAlign = " Right " runat = " server " >< asp:Label ID = " Label5 " Font - size = " 12px " Runat = " server " Text = " 生日 " Font - Names = " verdana " /></ asp:TableCell >
< asp:TableCell runat = " server " >< asp:TextBox id = " txtPersonDob " runat = " server " /></ asp:TableCell >
</ asp:TableRow >
< asp:TableRow runat = " server " >
< asp:TableCell HorizontalAlign = " Right " runat = " server " >< asp:Label ID = " Label6 " Font - size = " 12px " Runat = " server " Text = " 图片 " Font - Names = " verdana " /></ asp:TableCell >
< asp:TableCell runat = " server " >< input type = " file " id = " PersonImage " runat = " server " /></ asp:TableCell >
</ asp:TableRow >
< asp:TableRow runat = " server " >
< asp:TableCell ColumnSpan = " 2 " HorizontalAlign = " Center " runat = " server " >
< asp:Button ID = " Button1 " Text = " 添加 " OnClick = " AddPerson " runat = " server " />
</ asp:TableCell >
</ asp:TableRow >
</ asp:Table >
< br />
< table >
< tr >
< td align = " left " valign = " top " style = " width: 181px " >
< asp:Label ID = " Label_Message " runat = " server " Font - Size = " 10pt " ></ asp:Label ></ td >
< td style = " width: 7px " >
</ td >
< td align = " left " style = " width: 18px " valign = " top " >
</ td >
</ tr >
< tr >
< td style = " width: 181px; " align = " left " valign = " top " >
< asp:GridView ID = " GridView1 " runat = " server " AutoGenerateColumns = " False " CellPadding = " 4 " DataKeyNames = " PersonID " DataSourceID = " SqlDataSource_SelectImage " ForeColor = " #333333 " OnSelectedIndexChanged = " GridView1_SelectedIndexChanged " Font - Size = " 10pt " Width = " 200px " BackColor = " #FFE0C0 " >
< FooterStyle BackColor = " #507CD1 " Font - Bold = " True " ForeColor = " White " />
< Columns >
< asp:TemplateField HeaderText = " 序号 " InsertVisible = " False " SortExpression = " PersonID " >
< EditItemTemplate >
< asp:Label ID = " Label1 " runat = " server " Text = ' <%# Eval("PersonID") %> ' ></ asp:Label >
</ EditItemTemplate >
< ItemTemplate >
< asp:Label ID = " Label1 " runat = " server " Text = ' <%# Bind("PersonID") %> ' ></ asp:Label >
</ ItemTemplate >
< HeaderStyle Width = " 35px " />
</ asp:TemplateField >
< asp:BoundField DataField = " PersonName " HeaderText = " 名字 " SortExpression = " PersonName " />
< asp:BoundField DataField = " PersonImageType " HeaderText = " 图片类型 " SortExpression = " PersonImageType " />
< asp:CommandField ShowSelectButton = " True " >
< ItemStyle Width = " 30px " />
</ asp:CommandField >
</ Columns >
< RowStyle BackColor = " #EFF3FB " />
< EditRowStyle BackColor = " #2461BF " />
< SelectedRowStyle BackColor = " #D1DDF1 " Font - Bold = " True " ForeColor = " #333333 " />
< PagerStyle BackColor = " #2461BF " ForeColor = " White " HorizontalAlign = " Center " />
< HeaderStyle BackColor = " Red " Font - Bold = " True " ForeColor = " White " />
< AlternatingRowStyle BackColor = " White " />
</ asp:GridView >
</ td >
< td style = " width: 7px; height: 180px; " >
</ td >
< td align = " left " style = " width: 18px; height: 180px; " valign = " top " >
< asp:Image ID = " Image_Show " runat = " server " /></ td >
</ tr >
< tr >
< td style = " width: 181px " >
</ td >
< td style = " width: 7px " >
</ td >
< td style = " width: 18px " >
</ td >
</ tr >
< tr >
< td style = " width: 181px; height: 21px; " >
</ td >
< td style = " width: 7px; height: 21px; " >
</ td >
< td style = " width: 18px; height: 21px; " >
</ td >
</ tr >
</ table >
< asp:SqlDataSource ID = " SqlDataSource_SelectImage " runat = " server " ConnectionString = " <%$ ConnectionStrings:ImageSelect_ConnectionString %> "
SelectCommand = " SELECT PersonID, PersonName, PersonImageType FROM Person " ></ asp:SqlDataSource >
</ form >
</ body >
</ html >
ImageFileUpload.aspx.cs:
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 ImageFileUpload : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void AddPerson(object sender, EventArgs e)
{
int intImageSize;
string strImageType;
Stream ImageStream;
intImageSize = PersonImage.PostedFile.ContentLength;
ImageStream = PersonImage.PostedFile.InputStream;
strImageType = PersonImage.PostedFile.ContentType;
Byte[] ImageContent = new Byte[intImageSize];
int intStatus;
intStatus = ImageStream.Read(ImageContent, 0, intImageSize);
//string ConnStr = System.Configuration.ConfigurationSettings.AppSettings["Lw_SqlConnectString"];
string ConnStr = "Data Source=127.0.0.1;Initial Catalog=Pfrmis_TZXY;User ID=sa";
SqlConnection myConnection=new SqlConnection(ConnStr);
SqlCommand myCommand=new SqlCommand("sp_person_isp", myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter prmEmail=new SqlParameter("@PersonEmail", SqlDbType.VarChar, 255);
prmEmail.Value = txtPersonEmail.Text;
myCommand.Parameters.Add(prmEmail);
SqlParameter prmName=new SqlParameter("@PersonName", SqlDbType.VarChar, 255);
prmName.Value = txtPersonName.Text;
myCommand.Parameters.Add(prmName);
SqlParameter prmSex =new SqlParameter("@PersonSex", SqlDbType.Char, 1);
if (sexMale.Checked)
{
prmSex.Value = "M";
}
else
{
prmSex.Value = "F";
}
myCommand.Parameters.Add(prmSex);
SqlParameter prmPersonDOB= new SqlParameter("@PersonDOB", SqlDbType.DateTime);
prmPersonDOB.Value = txtPersonDob.Text;
myCommand.Parameters.Add(prmPersonDOB);
SqlParameter prmPersonImage =new SqlParameter("@PersonImage", SqlDbType.Image);
prmPersonImage.Value = ImageContent;
myCommand.Parameters.Add(prmPersonImage);
SqlParameter prmPersonImageType =new SqlParameter("@PersonImageType", SqlDbType.VarChar, 255);
prmPersonImageType.Value = strImageType;
myCommand.Parameters.Add(prmPersonImageType);
try
{
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
Response.Write("添加成功!");
}
catch(SqlException SQLexc)
{
Response.Write("插入失败,错误如下: " + SQLexc.ToString());
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
// Session["id"] = "";
Label lbl1;
lbl1 = (Label)GridView1.SelectedRow.Cells[0].FindControl("Label1");
Label_Message.Text ="你选择的图片是:"+lbl1.Text;
Session["id"] = lbl1.Text;
Image_Show.ImageUrl = "ImageShow.aspx";
}
}
ImageShow.aspx:(显示图片)
<! 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 >
</ div >
</ form >
</ body >
</ html >
ImageShow.aspx.cs:
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;
public partial class ImageShow : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//连接数据库的第一种方法
SqlConnection myConnection = new SqlConnection(ConfigurationManager.AppSettings["Lw_SqlConnectString"]);
//连接数据库的第二种方法
//SqlConnection myConnection = new SqlConnection("Data Source=.;Initial Catalog=Tcis_shrl;User Id=sa;Password=;");
if (Session["id"] == null)
{
}
else
{
string sql = "Select PersonImage from Person Where PersonID=";
SqlCommand myCommand = new SqlCommand(sql + Session["id"].ToString().Trim(), myConnection);
try
{
myConnection.Open();
SqlDataReader myDataReader;
myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
if (myDataReader.Read())
{
Response.Clear();
// Response.ContentType = "image/pjpeg";//可有可无
Response.BinaryWrite((byte[])myDataReader["PersonImage"]);
}
myConnection.Close();
}
catch (SqlException SQLexc)
{
Response.Write(SQLexc);
}
Response.End();
}
}
}
最后一个存储过程:
Drop Table Person
Go
Create Table Person
(
PersonID Int Identity,
PersonEmail Varchar(255),
PersonName Varchar(255),
PersonSex Char(1),
PersonDOB DateTime,
PersonImage Image,
PersonImageType Varchar(255)
)
Drop Proc sp_person_isp
Go
Create Proc sp_person_isp
@PersonEmail Varchar(255),
@PersonName Varchar(255),
@PersonSex Char(1),
@PersonDOB DateTime,
@PersonImage Image,
@PersonImageType Varchar(255)
As
Begin
Insert into Person
(PersonEmail, PersonName, PersonSex,
PersonDOB, PersonImage, PersonImageType)
Values
(@PersonEmail, @PersonName, @PersonSex,
@PersonDOB, @PersonImage, @PersonImageType)
End
Go