在ASP.NET 1.0/1.1,您可以上传文件使用的HTML文件上传服务器的控制。这种控制使一个<input type="file">网页上的内容,使最终用户将文件上载到服务器。要使用该文件,但是,你必须要做出的修改夫妇到页。例如,您都必须添加字符编码=“多重/表单数据”页面的<form>元素。
ASP.NET 2.0中引入了一个新文件上传服务器控件,使得文件上传到服务器的过程更加简单。当给一个页面的能力,上传文件,您只需包括新<asp:FileUpload>控制和ASP.NET兼顾了其余的,包括加入enctype属性的页面的<form>元素。
上传文件使用FileUpload控件
该文件后,上传到服务器,您还可以把握上载文件的属性,要么显示给最终用户或使用您的网页的代码隐藏自己这些价值观。清单1展示了一个使用新FileUpload控件的例子。该网页包含一个FileUpload控件,以及一个按钮和一个Label控件。
VB
<%@ Page Language="VB"%>
<script runat="server">
Protected Sub
Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
If FileUpload1.HasFile Then
Try
FileUpload1.SaveAs("C:Uploads" & _
FileUpload1.FileName)
Label1.Text = "File name: " & _
FileUpload1.PostedFile.FileName & "<br>" & _
"File Size: " & _
FileUpload1.PostedFile.ContentLength & " kb<br>" & _
"Content type: " & _
FileUpload1.PostedFile.ContentType
Catch ex As Exception
Label1.Text = "ERROR: " & ex.Message.ToString()
End Try
Else
Label1.Text = "You have not specified a file."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FileUpload Server Control</title>
</head>
<body>
<form id="form1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" />
<p>
<asp:Button ID="Button1" runat="server" Text="Upload"
OnClick="Button1_Click" /></p>
<p>
<asp:Label ID="Label1" runat="server"></asp:Label></p>
</form>
</body>
</html>C#
<%@ Page Language="C#"%>
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
try {
FileUpload1.SaveAs("C:Uploads" + FileUpload1.FileName);
Label1.Text = "File name: " +
FileUpload1.PostedFile.FileName + "<br>" +
FileUpload1.PostedFile.ContentLength + " kb<br>" +
"Content type: " +
FileUpload1.PostedFile.ContentType;
}
catch (Exception ex) {
Label1.Text = "ERROR: " + ex.Message.ToString();
}
else
{
Label1.Text = "You have not specified a file.";
}
}
</script>
从这个例子可以看到,整个过程非常简单。页面上的一个按钮启动上传过程。 FileUpload控件本身并没有主动上传过程。你必须主动通过其他如Button_Click事件了。
当编译和运行此网页,您可能会注意到在网页生成的源代码几件事。一个生成的源代码示例是这里提出:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1"><title>
FileUpload Server Control
</title></head>
<body>
<form name="form1" method="post" action="FileUpload.aspx" id="form1"
enctype="multipart/form-data">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
value="/wEPDwUKMTI3ODM5MzQ0Mg9kFgICAw8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm
0tZGF0YWRkrSpgAFaEKed5+5/8+zKglFfVLCE=" />
</div>
<input type="file" name="FileUpload1" id="FileUpload1" />
<p>
<input type="submit" name="Button1" value="Upload" id="Button1" /></p>
<p>
<span id="Label1"></span></p>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION"
value="/wEWAgL1wLWICAKM54rGBqfR8MhZIDWVowox+TUvybG5Xj0y" />
</div></form>
</body>
</html>
从这个例子可以看到,整个过程非常简单。页面上的一个按钮启动上传过程。 FileUpload控件本身并没有主动上传过程。你必须主动通过其他如Button_Click事件了。
当编译和运行此网页,您可能会注意到在网页生成的源代码几件事。一个生成的源代码示例是这里提出: