首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 基礎控件深度解析 (二):FileUpload、Literal、Panel、PlaceHolder 實戰應用

     編輯:關於ASP.NET

FileUpload - 檔案上傳核心控件

轉譯為 ``。關鍵屬性與方法:

成員類型說明
HasFilebool是否有檔案上傳
FileNamestring客戶端檔名
FileBytesbyte[]檔案位元組陣列
FileContentStream檔案資料流
PostedFileHttpPostedFile底層物件,含 ContentLength、ContentType、InputStream
SaveAs(path)void儲存至伺服器實體路徑

標準上傳流程

  1. `if (fu.HasFile)` 判斷是否上傳。
  2. 指定伺服器儲存實體路徑,`Directory.Exists` 檢查並 `CreateDirectory`。
  3. 驗證副檔名、MIME 類型、檔案大小 (如 `fu.PostedFile.ContentLength < 4*1024*1024`)。
  4. `fu.SaveAs(serverPath)` 儲存。
  5. 資料庫記錄**相對路徑或 URL**,而非實體路徑,供前端存取。

完整範例

protected void btnUpload_Click(object sender, EventArgs e)
{
    if (!fu.HasFile) { lblMsg.Text = "請選擇檔案"; return; }

    string ext = Path.GetExtension(fu.FileName).ToLower();
    string[] allowed = { ".jpg", ".png", ".pdf", ".docx" };
    if (!allowed.Contains(ext)) { lblMsg.Text = "副檔名不允許"; return; }

    if (fu.PostedFile.ContentLength > 4 * 1024 * 1024) { lblMsg.Text = "檔案超過 4MB"; return; }

    string saveDir = Server.MapPath("~/Uploads/");
    if (!Directory.Exists(saveDir)) Directory.CreateDirectory(saveDir);

    string fileName = Guid.NewGuid().ToString("N") + ext;
    string fullPath = Path.Combine(saveDir, fileName);
    fu.SaveAs(fullPath);

    // 存入 DB: 相對路徑 "~/Uploads/" + fileName
    lblMsg.Text = "上傳成功: " + fileName;
}

Literal - 純文字/HTML 輸出控件

無外框標籤,直接輸出 `Text` 內容。`Mode` 屬性控制編碼行為:

  • `Transform` (預設):依頁面編碼轉換。
  • `PassThrough`:原樣輸出,**可輸出 HTML/Script/Style**,極度彈性但需防 XSS。
  • `Encode`:HTML 編碼輸出,安全但無法輸出標籤。

常用於動態產生 ``、`

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved