在ASP.NET中處理文件下載,通常需要以下幾個步驟:
以下是一個簡單的示例,展示了如何在ASP.NET中處理文件下載:
using System;
using System.IO;
using System.Web.Http;
public class DownloadController : ApiController
{
[HttpGet]
public IHttpActionResult DownloadFile(string fileName)
{
// 指定文件路徑
string filePath = Path.Combine(Server.MapPath("~/Files"), fileName);
// 檢查文件是否存在
if (!File.Exists(filePath))
{
return NotFound();
}
// 設置響應頭
Response.Clear();
Response.ContentType = File.GetContentType(filePath);
Response.AddHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath));
Response.AddHeader("Content-Length", new FileInfo(filePath).Length.ToString());
// 讀取文件并寫入響應輸出流
using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
{
fileStream.CopyTo(Response.OutputStream);
}
// 關閉響應輸出流
Response.End();
// 返回完成狀態
return Ok();
}
}
在這個示例中,我們創建了一個名為DownloadController的控制器,其中有一個名為DownloadFile的GET方法。這個方法接受一個名為fileName的參數,該參數表示要下載的文件名。我們首先檢查文件是否存在,如果不存在,則返回404 Not Found錯誤。然后,我們設置響應頭,以便告訴瀏覽器這是一個文件下載請求。接下來,我們讀取文件并將其內容寫入響應輸出流。最后,我們關閉響應輸出流并返回完成狀態。