最近捣鼓了一下,效果就是这样:
图1:
图2:
ImageFileUpload.aspx:
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="ImageFileUpload.aspx.cs"Inherits="ImageFileUpload"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>图片保存和显示</title>
</head>
<body>
<formid="Form2"enctype="multipart/form-data"runat="server">
<asp:TableID="Table1"Runat="server"Width="39%"BorderWidth="1"BackColor="Beige">
<asp:TableRowrunat="server">
<asp:TableCellColumnSpan="2"BackColor="Red"runat="server">
<asp:LabelID="Label1"Font-size="12px"ForeColor="White"font-bold="True"Runat="server"Text="添加"Font-Names="verdana"/>
</asp:TableCell>
</asp:TableRow>
<asp:TableRowrunat="server">
<asp:TableCellHorizontalAlign="Right"runat="server"><asp:LabelID="Label2"Font-size="12px"Runat="server"Text="名字"Font-Names="verdana"/></asp:TableCell>
<asp:TableCellrunat="server"><asp:TextBoxid="txtPersonName"Runat="server"/></asp:TableCell>
</asp:TableRow>
<asp:TableRowrunat="server">
<asp:TableCellHorizontalAlign="Right"runat="server"><asp:LabelID="Label3"Font-size="12px"Runat="server"Text="Email"Font-Names="verdana"/></asp:TableCell>
<asp:TableCellrunat="server"><asp:TextBoxid="txtPersonEmail"Runat="server"/></asp:TableCell>
</asp:TableRow>
<asp:TableRowrunat="server">
<asp:TableCellHorizontalAlign="Right"runat="server"><asp:LabelID="Label4"Font-size="12px"Runat="server"Text="性别"Font-Names="verdana"/></asp:TableCell>
<asp:TableCellrunat="server">
<asp:RadioButtonGroupName="sex"Font-Size="12px"Text="男性"ID="sexMale"Runat="server" Checked="true"/>
<asp:RadioButtonGroupName="sex"Font-Size="12px"Text="女性"ID="sexFeMale"Runat="server"/>
</asp:TableCell>
</asp:TableRow>
<asp:TableRowrunat="server">
<asp:TableCellHorizontalAlign="Right"runat="server"><asp:LabelID="Label5"Font-size="12px"Runat="server"Text="生日"Font-Names="verdana"/></asp:TableCell>
<asp:TableCellrunat="server"><asp:TextBoxid="txtPersonDob"runat="server"/></asp:TableCell>
</asp:TableRow>
<asp:TableRowrunat="server">
<asp:TableCellHorizontalAlign="Right"runat="server"><asp:LabelID="Label6"Font-size="12px"Runat="server"Text="图片"Font-Names="verdana"/></asp:TableCell>
<asp:TableCellrunat="server"><inputtype="file"id="PersonImage"runat="server"/></asp:TableCell>
</asp:TableRow>
<asp:TableRowrunat="server">
<asp:TableCellColumnSpan="2"HorizontalAlign="Center"runat="server">
<asp:ButtonID="Button1"Text="添加"OnClick="AddPerson"runat="server"/>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
<br/>
<table>
<tr>
<tdalign="left"valign="top"style="width:181px">
<asp:LabelID="Label_Message"runat="server"Font-Size="10pt"></asp:Label></td>
<tdstyle="width:7px">
</td>
<tdalign="left"style="width:18px"valign="top">
</td>
</tr>
<tr>
<tdstyle="width:181px;"align="left"valign="top">
<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"CellPadding="4"DataKeyNames="PersonID"DataSourceID="SqlDataSource_SelectImage"ForeColor="#333333"OnSelectedIndexChanged="GridView1_SelectedIndexChanged"Font-Size="10pt"Width="200px"BackColor="#FFE0C0">
<FooterStyleBackColor="#507CD1"Font-Bold="True"ForeColor="White"/>
<Columns>
<asp:TemplateFieldHeaderText="序号"InsertVisible="False"SortExpression="PersonID">
<EditItemTemplate>
<asp:LabelID="Label1"runat="server"Text='<%#Eval("PersonID")%>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:LabelID="Label1"runat="server"Text='<%#Bind("PersonID")%>'></asp:Label>
</ItemTemplate>
<HeaderStyleWidth="35px"/>
</asp:TemplateField>
<asp:BoundFieldDataField="PersonName"HeaderText="名字"SortExpression="PersonName"/>
<asp:BoundFieldDataField="PersonImageType"HeaderText="图片类型"SortExpression="PersonImageType"/>
<asp:CommandFieldShowSelectButton="True">
<ItemStyleWidth="30px"/>
</asp:CommandField>
</Columns>
<RowStyleBackColor="#EFF3FB"/>
<EditRowStyleBackColor="#2461BF"/>
<SelectedRowStyleBackColor="#D1DDF1"Font-Bold="True"ForeColor="#333333"/>
<PagerStyleBackColor="#2461BF"ForeColor="White"HorizontalAlign="Center"/>
<HeaderStyleBackColor="Red"Font-Bold="True"ForeColor="White"/>
<AlternatingRowStyleBackColor="White"/>
</asp:GridView>
</td>
<tdstyle="width:7px;height:180px;">
</td>
<tdalign="left"style="width:18px;height:180px;"valign="top">
<asp:ImageID="Image_Show"runat="server"/></td>
</tr>
<tr>
<tdstyle="width:181px">
</td>
<tdstyle="width:7px">
</td>
<tdstyle="width:18px">
</td>
</tr>
<tr>
<tdstyle="width:181px;height:21px;">
</td>
<tdstyle="width:7px;height:21px;">
</td>
<tdstyle="width:18px;height:21px;">
</td>
</tr>
</table>
<asp:SqlDataSourceID="SqlDataSource_SelectImage"runat="server"ConnectionString="<%$ConnectionStrings:ImageSelect_ConnectionString%>"
SelectCommand="SELECTPersonID,PersonName,PersonImageTypeFROMPerson"></asp:SqlDataSource>
</form>
</body>
</html>
ImageFileUpload.aspx.cs:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
usingSystem.IO;



publicpartialclassImageFileUpload:System.Web.UI.Page

{
protectedvoidPage_Load(objectsender,EventArgse)

{
}




protectedvoidAddPerson(objectsender,EventArgse)

{
intintImageSize;
stringstrImageType;
StreamImageStream;
intImageSize=PersonImage.PostedFile.ContentLength;
ImageStream=PersonImage.PostedFile.InputStream;
strImageType=PersonImage.PostedFile.ContentType;
Byte[]ImageContent=newByte[intImageSize];
intintStatus;
intStatus=ImageStream.Read(ImageContent,0,intImageSize);
//stringConnStr=System.Configuration.ConfigurationSettings.AppSettings["Lw_SqlConnectString"];
stringConnStr="DataSource=127.0.0.1;InitialCatalog=Pfrmis_TZXY;UserID=sa";
SqlConnectionmyConnection=newSqlConnection(ConnStr);
SqlCommandmyCommand=newSqlCommand("sp_person_isp",myConnection);
myCommand.CommandType=CommandType.StoredProcedure;
SqlParameterprmEmail=newSqlParameter("@PersonEmail",SqlDbType.VarChar,255);
prmEmail.Value=txtPersonEmail.Text;
myCommand.Parameters.Add(prmEmail);
SqlParameterprmName=newSqlParameter("@PersonName",SqlDbType.VarChar,255);
prmName.Value=txtPersonName.Text;
myCommand.Parameters.Add(prmName);
SqlParameterprmSex=newSqlParameter("@PersonSex",SqlDbType.Char,1);
if(sexMale.Checked)

{
prmSex.Value="M";
}
else

{
prmSex.Value="F";
}
myCommand.Parameters.Add(prmSex);
SqlParameterprmPersonDOB=newSqlParameter("@PersonDOB",SqlDbType.DateTime);
prmPersonDOB.Value=txtPersonDob.Text;
myCommand.Parameters.Add(prmPersonDOB);
SqlParameterprmPersonImage=newSqlParameter("@PersonImage",SqlDbType.Image);
prmPersonImage.Value=ImageContent;
myCommand.Parameters.Add(prmPersonImage);
SqlParameterprmPersonImageType=newSqlParameter("@PersonImageType",SqlDbType.VarChar,255);
prmPersonImageType.Value=strImageType;
myCommand.Parameters.Add(prmPersonImageType);
try

{
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
Response.Write("添加成功!");
}
catch(SqlExceptionSQLexc)

{
Response.Write("插入失败,错误如下:"+SQLexc.ToString());
}


}

protectedvoidGridView1_SelectedIndexChanged(objectsender,EventArgse)

{
//Session["id"]="";
Labellbl1;
lbl1=(Label)GridView1.SelectedRow.Cells[0].FindControl("Label1");
Label_Message.Text="你选择的图片是:"+lbl1.Text;
Session["id"]=lbl1.Text;
Image_Show.ImageUrl="ImageShow.aspx";
}
}
ImageShow.aspx:(显示图片)
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="ImageShow.aspx.cs"Inherits="ImageShow"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>无标题页</title>
</head>
<body>
<formid="form1"runat="server">
<div>
</div>
</form>
</body>
</html>
ImageShow.aspx.cs:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclassImageShow:System.Web.UI.Page

{
protectedvoidPage_Load(objectsender,EventArgse)

{
//连接数据库的第一种方法
SqlConnectionmyConnection=newSqlConnection(ConfigurationManager.AppSettings["Lw_SqlConnectString"]);
//连接数据库的第二种方法
//SqlConnectionmyConnection=newSqlConnection("DataSource=.;InitialCatalog=Tcis_shrl;UserId=sa;Password=;");
if(Session["id"]==null)

{
}
else

{
stringsql="SelectPersonImagefromPersonWherePersonID=";
SqlCommandmyCommand=newSqlCommand(sql+Session["id"].ToString().Trim(),myConnection);
try

{
myConnection.Open();
SqlDataReadermyDataReader;
myDataReader=myCommand.ExecuteReader(CommandBehavior.CloseConnection);
if(myDataReader.Read())

{
Response.Clear();

//Response.ContentType="image/pjpeg";//可有可无
Response.BinaryWrite((byte[])myDataReader["PersonImage"]);
}
myConnection.Close();
}
catch(SqlExceptionSQLexc)

{
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
本文介绍了一个使用ASP.NET实现的图片上传及显示功能的具体实现方法。通过C#代码完成图片信息的收集、存储和展示,并详细展示了如何利用ASP.NET中的控件进行布局设计和交互操作。
1959

被折叠的 条评论
为什么被折叠?



