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

ASP.NET MVC 檔案上傳完整實作:從前端表單到後端控制器

     編輯:ASP.NET 基礎

前端視圖:使用 Html.BeginForm 建立上傳表單

<% using (Html.BeginForm("Upload", "File", FormMethod.Post, 
       new { enctype = "multipart/form-data" })) { %>
    <p><input type="file" id="fileUpload" name="fileUpload" size="23" /></p>
    <p><input type="submit" value="Upload file" /></p>
<% } %>

關鍵點:enctype="multipart/form-data" 必須指定,否則檔案內容不會隨表單送出。

後端控制器:處理上傳檔案

public ActionResult Upload()
{
    foreach (string inputTagName in Request.Files)
    {
        HttpPostedFileBase file = Request.Files[inputTagName];
        if (file.ContentLength > 0)
        {
            string filePath = Path.Combine(
                Server.MapPath("~/Uploads"), 
                Path.GetFileName(file.FileName)
            );
            file.SaveAs(filePath);
        }
    }
    return RedirectToAction("Index", "File");
}

進階強化建議

  • 檔案驗證: 檢查副檔名、MIME 類型、檔案大小上限。
  • 檔名衝突處理: 使用 GUID 或時間戳重命名,避免覆蓋。
  • 儲存路徑配置化: 將上傳目錄寫入 Web.config appSettings。
  • 非同步上傳體驗: 搭配 jQuery Form Plugin 或 HTML5 FormData + AJAX 實現無刷新上傳與進度條。
  • 安全性: 禁止上傳可執行腳本(.aspx, .php, .exe 等),上傳目錄設定執行權限為「無」。

多檔案上傳擴充

前端將 input 加上 multiple 屬性,後端迴圈處理 Request.Files 即可支援多檔同時上傳。

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