承接上篇「MVC 檔案上傳顯示圖片」,本文實作將上傳檔案以列表呈現並提供下載。
於 FileLibraryEntity.cs 加入 GetUploadFileByPrimarykey 回傳 DataTable,依主鍵查詢檔案資訊。
public class DownloadResult : ContentResult {
public override void ExecuteResult(ControllerContext context) {
// 設定 Content-Type、Content-Disposition、輸出檔案串流
// 範例略
}
}
繼承 ContentResult 並覆寫 ExecuteResult,設定回應標頭 Content-Disposition: attachment; filename=... 並寫入檔案位元組串流,瀏覽器即彈出下載對話框。
Controller 動作:
public ActionResult Download(int id) {
var dt = entity.GetUploadFileByPrimarykey(id);
if (dt.Rows.Count > 0) {
string path = dt.Rows[0]["FilePath"].ToString();
string name = dt.Rows[0]["FileName"].ToString();
return new DownloadResult { FilePath = path, FileName = name };
}
return RedirectToAction("Index");
}
完整展示 MVC 下載功能的實體查詢、自訂 Result、Controller 協調全流程。