完整展示 FileUpload 控制項的實務應用模式,包含檔案大小限制、日期分類目錄自動建立、例外處理等生產級程式碼。
protected void Button1_Click(object sender, EventArgs e)
{
try
{
// 1. 檔案大小驗證(限制 50KB)
int intFileLength = this.FileUpload1.PostedFile.ContentLength;
if (intFileLength > 50000)
{
this.Label1.Text = "檔案大於 50KB,無法上傳";
return;
}
// 2. 動態建立日期分類目錄
string strUpPath = @"upfile\" + DateTime.Now.ToShortDateString();
if (!Directory.Exists(Server.MapPath(strUpPath)))
{
Directory.CreateDirectory(Server.MapPath(strUpPath));
}
// 3. 組合完整儲存路徑並儲存
string strUrl = Server.MapPath(strUpPath + @"\" + this.FileUpload1.FileName);
this.FileUpload1.SaveAs(strUrl);
this.Label1.Text = "檔案上傳成功";
}
catch (Exception ex)
{
this.Label1.Text = "檔案上傳失敗:" + ex.Message;
}
}
PostedFile.ContentLength 取得位元組數,防止大檔案佔用頻寬Server.MapPath 將虛擬路徑轉為實體路徑安全性提醒:實務專案應額外驗證副檔名、MIME 類型、掃描病毒、使用亂數重命名檔案防止覆蓋與腳本注入。