应用
程序中经常需要允许用户把文件上传到
web服务器。尽管在ASP.
NET1.X也可以完成该功能,但在ASP.NET2.0中使用FileUpl
oad控件会更简单。
该控件让用户更容易地浏览和选择用于上传的文件,它包含一个浏览按钮和用于输入文件名的文本框。只要用户在文本框中输入了完全限定的文件名,无论是直接输入或通过浏览按钮选择,都可以调用FileUpload的SaveAs方法保存到磁盘上。
除了从WebControl类继承的标准成员,FileUpload控件还公开了几个只读的属性,在表5-8和表5-9列出。
表5-8FileUpload控件属性
名称类型读写说明
FileContentStream×返回一个指向上传文件的流对象
FileNamestring×返回要上传文件的名称,不包含路径信息
HasFileBoolean×如果是true,则表示该控件有文件要上传
PostedFileHttpPostedFile×返回已经上传文件的引用。表5-9列出了它所公开的只读属性
表5-9HttpPostedFile属性
名称类型读写说明
ContentLengthinteger×返回上传文件的按字节表示的文件大小
ContentTypestring×返回上传文件的MIME内容类型
FileNamestring×返回文件在客户端的完全限定名
InputStreamStream×返回一个指向上传文件的流对象
所有这些属性将在下面的示例中说明。
为了查看FileUpload控件在实际中的运用,创建一个FileUploadDemo网站。在页面上添加一个FileUpload控件,然后,添加两个ASP.NET按钮,Text属性分别设置为Save和Display,ID分别设置为btnSave和btnDisplay。增加两个Label控件,并分别将ID设置为lblMesage和lblDisplay。用<br/>
HTML元素分隔这些控件。切换到
设计视图,通过双击每个按钮,为它们在代码隐藏文件中创建具有默认名称的Click事件处理程序。完成后的内容文件类似于示例5-11。
示例5-11:FileUploadDemo网站的default.aspx
<%@PageLanguage=”C#”AutoEventWireup=”true”CodeFile=”Default.aspx.cs”Inherits=”_Default”%>
<!DOCTYPEhtmlPUBLIC“-//W3C//DTDXHTML1.1//EN”“http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
<html
xmlns=”http://www.w3.org/1999/xhtml”>
<headrunat=”server”>
<title>FileUploadControl</title>
</head>
<body>
<formid=”form1”runat=”server”>
<div>
<h1>FileUploadControl</h1>
<asp:FileUploadID=”FileUpload1”runat=”server”/>
<br/>
<asp:ButtonID=”btnSave”runat=”server”Text=”Save”OnClick=”btnSave_Click”/>
<asp:ButtonID=”btnDisplay”runat=”server”Text=”Display”OnClick=”btnDisplay_Click”/>
<br/>