实验07 文件上传系统的制作swf.docx
《实验07 文件上传系统的制作swf.docx》由会员分享,可在线阅读,更多相关《实验07 文件上传系统的制作swf.docx(21页珍藏版)》请在冰豆网上搜索。
实验07文件上传系统的制作swf
实验07文件上传系统的制作
实验目的:
1、掌握文件上传系统的基本原理及逻辑过程。
2、掌握文件上传系统中常用函数的使用方法。
3、掌握文件上传的设计方法。
4、掌握文件下载次数等信息的统计方法。
5、掌握FileUpload控件的使用。
6、熟悉用GridView控件的自定义字段绑定数据的基本方法。
实验环境
(1)计算机一台;
(2)MicrosoftVisualStudio.NET2005工具软件;
实验学时
2学时
实验内容及步骤
1.上传页面设计。
(1)创建一个新的网站WebSite7,并建立一个新的Web窗体downAdd.aspx。
(2)在页面中添加6个TextBox控件,分别用来表示文件名称、文件大小、文件简介、
作者、地址1、下载地址1的信息;1个RequiredFieldValidator控件,1个FileUpload
控件,1个CheckBox控件,2个Button控件,1个Label控件,将其基本属性设置为如表
7-1所示。
表7-1验证控件及其属性
控件类型控件ID属性属性值
MaxLength50
TxtsnameWidth250px
TextK
txtsbigWidth120px
TextModeMultiLine
txtsinfoWidth500px
txtauthorWidth290px
txtsadd1Width300px
Text下载地址1
TextBox
Textaddinfo1Width230px
ControlToValidatetxtsname
RequiredFieldVali
datorRequiredFieldValidato
r1ErrorMessage*必填信息
FileUploadFileUpload1
CheckBoxChks1Text本地下载
Text上传资源
BtnupOnClickBtnup_Click
Text提交
Button
BtnenterOnClickBtnenter_Click
LabellblmyWidth50px
(3)利用表格进行布局,
图7-1
(4)打开代码设计器窗口downAdd.aspx.cs,在页面上端加入引用using
System.Data.OleDb。
在downAdd.aspx页面中选择“上传资源”按钮并双击,为该按钮添加
事件过程Btnup_Click,并打开代码设计器窗口downAdd.aspx.cs,编写以下程序,实现文件
的上传:
protectedvoidBtnup_Click(objectsender,EventArgse)
{
try
{
stringfilename=FileUpload1.FileName;
stringshz=filename.Substring(filename.LastIndexOf(".")+1);
System.Randomrd=newSystem.Random();
stringafilename=System.DateTime.Now.ToString("yyyyMMdd")+rd.Next(10000)+"."
+shz;
if(shz=="swf"||shz=="SWF")
{
FileUpload1.PostedFile.SaveAs(Server.MapPath("uploadfolder")+"\\flash\\"+
afilename);
stringsn="~\\uploadfolder\\flash\\"+afilename;
upload(sn);
}
elseif(shz=="jpg"||shz=="JPG"||shz=="bmp"||shz=="BMP"||shz=="gif"
||shz=="GIF")
{
FileUpload1.PostedFile.SaveAs(Server.MapPath("uploadfolder")+"\\images\\"+
afilename);
stringsn="~\\uploadfolder\\images\\"+afilename;
upload(sn);
}
elseif(shz=="wmv"||shz=="WMV"||shz=="wma"||shz=="WMA")
{
FileUpload1.PostedFile.SaveAs(Server.MapPath("uploadfolder")+"\\media\\"+
afilename);
stringsn="~\\uploadfolder\\media\\"+afilename;
upload(sn);
}
elseif(shz=="ppt"||shz=="PPT")
{
FileUpload1.PostedFile.SaveAs(Server.MapPath("uploadfolder")+"\\ppt\\"+
afilename);
stringsn="~\\uploadfolder\\ppt\\"+afilename;
upload(sn);
}
else
{
FileUpload1.PostedFile.SaveAs(Server.MapPath("uploadfolder")+
"\\otherfile\\"+afilename);
stringsn="~\\uploadfolder\\otherfile\\"+afilename;
upload(sn);
}
}
catch(Exceptionex)
{
this.lblmy.Text="文件上传失败!
";
Response.Write(ex.Message);
}
}
protectedvoidupload(stringsn)
{
//文件信息处理
floatsbig=this.FileUpload1.PostedFile.ContentLength/1024;
this.lblmy.Text="";
if(this.txtsadd1.Text=="")
{
if(sbig>=1000)
{
sbig=sbig/1024;
this.txtsbig.Text=sbig.ToString("0.0#")+"M";
}
else
{
this.txtsbig.Text=sbig.ToString("0.0#")+"K";
}
this.txtsadd1.Text=sn;
this.Textaddinfo1.Text="本地下载1";
this.Chks1.Checked=true;
}
}
(5)在downAdd.aspx页面中选择“提交”按钮并双击,为该按钮添加事件过程
Btnenter_Click,并打开代码设计器窗口downAdd.aspx.cs,编写以下程序,将文件信息写入
到数据库以保存文件信息。
protectedvoidBtnenter_Click(objectsender,EventArgse)
{
stringsqlstr,u1,u2,u3,u4,u5,u6,u7;
u1="'"+txtsname.Text;
u2="','"+txtsbig.Text;
u3="','"+txtsinfo.Text;
u4="','"+txtauthor.Text;
u5="','"+txtsadd1.Text;
u6="','"+Textaddinfo1.Text;
u7="',"+Chks1.Checked.ToString();
sqlstr="insertintodownload(sname,sbig,author,sinfo,sadd1,addinfo1,s1)values("+u1
+u2+u3+u4+u5+u6+u7+")";
try{
//连接并打开ACCESS数据库
stringdbname=Server.MapPath("App_Data/userinfo.mdb");
stringstrConnection="Provider=Microsoft.Jet.OleDb.4.0;DataSource='"+dbname+
"'";
OleDbConnectioncon=newOleDbConnection(strConnection);
con.Open();
//执行操作
OleDbCommandcmd=newOleDbCommand(sqlstr,con);
cmd.ExecuteNonQuery();
//关闭数据库
con.Close();
Response.Write("添加文件信息成功!
");
this.txtsbig.Text="";
this.txtsinfo.Text="";
this.txtsname.Text="";
this.txtsadd1.Text="";
this.Textaddinfo1.Text="下载地址1";
this.Chks1.Checked=false;
}
catch(Exceptionex)
{
Response.Write("添加文件信息失败!
"+ex.Message);
}
}
(6)保存并测试运行,检查文件上传功能的实现情况。
2.文件下载列表
(1)建立一个新的Web窗体downList.aspx。
(2)在downList.aspx页面中添加一个GridView控件,修改其ID为"GridView1"。
选
中控件并点击其右上角的三角形,选中自动套用格式,如图7-2所示,设置为“专业型”。
将其AllowPaging属性设置为"True",AutoGenerateColumns属性设置为"False",
PageSize属性设置为"15"。
图7-2
(3)为GridView1控件添加绑定字段信息。
选中控件并点击其右上角的三角形,选择
添加新列,在添加字段对话框中,选中字段类型为“HyperLinkField”;页眉文本设置为“文
件名称”;超链接文本选中“从数据字段获取文本”,设置为“sname”;超链接URL选择“从
数据字段获取URL”,设置为“sid”,URL格式字符串设置为downShow.aspx?
sid={0}。
如图
7-3所示。
图7-3
(4)为GridView1控件添加绑定字段信息。
选中控件并点击其右上角的三角形,选择添加
新列,在添加字段对话框中,选中字段类型为“BoundField”,页眉文本设置为“文件大小”,
数据字段设置为“sbig”,如图7-4所示。
图7-4
(4)用同样的方式依次添加另外3列,页眉文本分别设置为“下载次数”、“作者”、“上
传时间”,数据字段分别设置为“shit”、“author”、“sdate”。
添加完毕后,打开downList.aspx
源视图,可以看到为GridView1控件添加了以下代码:
HyperLinkFieldDataNavigateUrlFields="sid"
DataNavigateUrlFormatString="downShow.aspx?
sid={0}"DataTextField="sname"
DataTextFormatString="{0}"HeaderText="文件名称"/>
BoundFieldDataField="sbig"HeaderText="文件大小"SortExpression="sbig"/>
BoundFieldDataField="shit"HeaderText="下载次数"SortExpression="shit"/>
BoundFieldDataField="author"HeaderText="作者"SortExpression="author"/>
BoundFieldDataField="sdate"HeaderText="上传时间"SortExpression="sdate"/>
效果如图7-5所示。
图7-5
(5)在downList.aspx中选中GridView1控件,单击其属性面板中的事件按钮,选择
其OnPageIndexChanging属性并双击,为该属性增加事件过程——
“GridView1_PageIndexChanging”。
打开downList.aspx.cs文件,编写该事件过程程序。
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)
{
this.GridView1.PageIndex=e.NewPageIndex;
GridView1.DataBind();
}
(6)继续在downList.aspx.cs文件中编写以下程序,从数据库中读取出文件下载的相
关数据信息,并将其绑定至GridView1控件。
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
bind();
}
}
privatevoidbind()
{
stringdbname=Server.MapPath("App_Data/resource.mdb");
OleDbConnectioncon=newOleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA
Source='"+dbname+"'");
con.Open();
stringsqlstr;
sqlstr="select*fromdownload";
OleDbDataAdapterda=newOleDbDataAdapter(sqlstr,con);
DataSetds=newDataSet();
da.Fill(ds,"data");
GridView1.DataSource=ds.Tables["data"];
this.GridView1.DataKeyNames=newstring[]{"sid"};
GridView1.DataBind();
con.Close();
}
(7)保存文件并测试运行,效果如图7-6所示。
图7-6
3.查看下载文件的详细信息。
(1)建立一个新的Web窗体downShow.aspx。
(2)在downShow.aspx页面中添加7个Label控件,修改其ID分别为lblsname、
lblsbig、lblinfo、lblauthor、lbladddate、lblshit、hlk1,分别用来显示文件名称、文
件大小、文件简介、作者、上传时间、下载次数和下载地址的信息。
(3)利用表格进行页面布局,如图7-7所示。
图7-7
(4)打开downShow.aspx.cs文件,编写以下程序。
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
bind();
}
}
privatevoidbind()
{
if(Request.QueryString["sid"].ToString()!
=null&&
Request.QueryString["sid"].ToString()!
="")
{
stringid=Request.QueryString["sid"].ToString();
stringdbname=Server.MapPath("App_Data/resource.mdb");
OleDbConnectioncon=newOleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA
Source='"+dbname+"'");
con.Open();
stringsqlstr;
sqlstr="select*fromdownloadwheresid="+id;
OleDbCommandcmd=newOleDbCommand(sqlstr,con);
OleDbDataReaderdr=cmd.ExecuteReader();
dr.Read();
lblsname.Text=dr["sname"].ToString();
lblshit.Text=dr["shit"].ToString();
lblsbig.Text=dr["sbig"].ToString();
lblauthor.Text=dr["author"].ToString();
lbladddate.Text=dr["sdate"].ToString();
lblinfo.Text=dr["sinfo"].ToString();
if(dr["sadd1"].ToString()!
="")
{
this.hlk1.Visible=true;
this.hlk1.Text=dr["addinfo1"].ToString();
this.hlk1.NavigateUrl="downShit.aspx?
id="+id+"&adr="+
dr["sadd1"].ToString();
}
dr.Close();
con.Close();
}
}
(5)保存文件,并测试运行,从downList.aspx下载列表中单击选择一个文件,将定
位至downShow.aspx页面,其效果如图7-8所示。
图7-8
(6)新建一个web窗体downShit.aspx,用来处理文件下载次数信息的更新。
(7)打开downShit.aspx.cs文件,并编写以下程序。
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Request.QueryString["id"]!
=null&&Request.QueryString["id"].ToString()!
="")
{
bind();
Response.Redirect(@Request.QueryString["adr"].ToString());
}
}
privatevoidbind()
{
stringsqlstr="update[download]set[shit]=[shit]+1wheresid="+
Request.QueryString["id"].ToString();
try
{
//连接并打开ACCESS数据库
stringdbname=Server.MapPath("App_Data/resource.mdb");
stringstrConnection="Provider=Microsoft.Jet.OleDb.4.0;DataSource='"+dbname
+"'";
OleDbConnectioncon=newOleDbConnection(strConnection);
con.Open();
//执行操作
OleDbCommandcmd=newOleDbCommand(sqlstr,con);
cmd.ExecuteNonQuery();
//关闭数据库
con.Close();
}
catch(Exceptionex)
{
Response.Write(ex.Message);
}
}
(8)保存文件,并测试运行,观察效果。
从downList.aspx下载列表中单击选择一个
文件,将定位至downShow.aspx页面,点击“本地下载1”,可实现文件下载,并将下载次
数增加1.
(9)刷新downShow.aspx页面,可观察到文件下载次数已经得到更新。
实验注意事项
1.文件保存时,最好不要使用中文的名称或路径,否则容易出错。
2.文件下载时的路径是从数据库中读取的,所以一定要理清文件的存储路径,在往数
据库中存取信息时,确保存储正确的文件路径,否则会出现文件存在但不能下载的情况。
3.文件下载次数信息用单独的一个页面处理后再返回,以免存在信息统计的错误。
4.GridView控件默认是绑定所有字段信息,功能有限,根据需要用自定义方法设计绑
定的字段信息,灵活运用页面之间数据传递的方法。
思考与练习
1.HTML控件中有一个Input(File)类型的控件,和标准控件中的FileUpload控件有
什么区别?
能否用Input(File)控件实现文件上传的功能?
2.如何实现文件的批量上传?
实验8用户在线注册、登录系统的制作
一、目的与要求
1.掌握在网页中进行数据库操作的基本方法。
2.掌握用户注册及登录的基本逻辑过程。
3.熟练使用各种验证控件实现页面信息的验证。
4.掌握用户注册程序的设计方法。
5.掌握用户注册程序的设计方法。
6.掌握用MD5对用户数据加密的基本原理及方法。
二、实验环境
1.计算机一台;
2.MicrosoftVisualStudio.NET2005工具软件;
三、实验内容及步骤
1.掌握用户注册及登