在ASP.NET Core中處理文件上傳,你可以使用以下方法:
public class FileUploadModel
{
public IFormFile File { get; set; }
}
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
[HttpPost("upload")]
public async Task<IActionResult> UploadFile(FileUploadModel model)
{
if (model.File == null || model.File.Length == 0)
{
return BadRequest("請選擇一個文件");
}
// 保存文件到服務器的本地目錄
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "uploads", model.File.FileName);
using (var stream = new FileStream(filePath, FileMode.Create))
{
await model.File.CopyToAsync(stream);
}
return Ok("文件上傳成功");
}
<form asp-action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit">上傳文件</button>
</form>
注意:在表單中,enctype="multipart/form-data"
屬性是必需的,因為它允許瀏覽器將文件作為二進制數據發送。
現在,當用戶通過表單上傳文件時,UploadFile
方法將被調用,文件將被保存到服務器的本地目錄。你可以根據需要自定義文件保存的位置和名稱。