在ASP.NET中,使用FileUpload控件可以轻松地上传和处理文件。以下是一个简单的示例,说明如何使用FileUpload控件将文件保存到服务器上的指定位置:
<!DOCTYPE html>
<html>
<head>
<title>File Upload Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" />
</form>
</body>
</html>
using System;
using System.IO;
using System.Web.UI;
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 确保文件上传控件在回发时保持其状态
FileUpload1.SaveState();
}
protected void btnUpload_Click(object sender, EventArgs e)
{
// 检查是否有文件被上传
if (FileUpload1.HasFile)
{
// 获取文件名
string fileName = Path.GetFileName(FileUpload1.FileName);
// 设置文件保存路径
string path = Server.MapPath("~/Uploads/" + fileName);
// 将文件保存到服务器
FileUpload1.SaveAs(path);
// 显示上传成功的消息
lblMessage.Text = "File uploaded successfully!";
}
else
{
// 显示没有文件被上传的消息
lblMessage.Text = "No file was uploaded.";
}
}
}
在这个示例中,当用户点击"Upload"按钮时,btnUpload_Click
事件处理程序将被调用。该处理程序首先检查是否有文件被上传,如果有,则获取文件名并设置文件保存路径。然后,使用SaveAs
方法将文件保存到服务器上的指定位置。最后,显示一个消息框告知用户文件是否已成功上传。
注意:确保在Web.config文件中设置了<system.web>
元素的enctype
属性为multipart/form-data
,以支持文件上传:
<configuration>
<system.web>
<httpRuntime maxRequestLength="204800" />
<form action="/Default.aspx" method="post" enctype="multipart/form-data">
<!-- ... -->
</form>
</system.web>
</configuration>