FileUpload (ASP.NET 2.0 新增) 內建處理 enctype="multipart/form-data",無需手動修改 <form> 標籤,API 更直覺:HasFile、FileName、SaveAs、PostedFile (HttpPostedFile)。舊版 HtmlInputFile 仍可使用但較繁瑣。
<%@ Page Language="C#" %>
<script runat="server">
protected void Button1_Click(object sender, EventArgs e) {
if (FileUpload1.HasFile) {
try {
string savePath = Server.MapPath("~/Uploads/") + FileUpload1.FileName;
FileUpload1.SaveAs(savePath);
Label1.Text = $"檔案:{FileUpload1.FileName}<br/>大小:{FileUpload1.PostedFile.ContentLength} bytes<br/>類型:{FileUpload1.PostedFile.ContentType}";
} catch (Exception ex) {
Label1.Text = "錯誤:" + ex.Message;
}
} else {
Label1.Text = "請選擇檔案";
}
}
</script>
<html><body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" /><br/><br/>
<asp:Button ID="Button1" Text="上傳檔案" OnClick="Button1_Click" runat="server" /><br/><br/>
<asp:Label ID="Label1" runat="server" />
</div></form></body></html>
web.config <httpRuntime maxRequestLength="10240" /> (KB),配合客戶端檢查。Server.MapPath 結合檔名超過 260 字元,改用短路徑或重命名。