最近捣鼓了一下,效果就是这样: 图1: 图2: ImageFileUpload.aspx:
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
ImageFileUpload.aspx.cs
"
Inherits
=
"
ImageFileUpload
"
%>
<!
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;
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:(显示图片)
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
ImageShow.aspx.cs
"
Inherits
=
"
ImageShow
"
%>
<!
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;
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