在ASP.NET Core中,文件上傳和下載可以通過以下方式實現:
文件上傳:
<input type="file">
元素用于用戶選擇要上傳的文件。IFormFile
類型的參數來接收上傳的文件數據。FileStream
或MemoryStream
等類來將上傳的文件保存到服務器的指定位置。示例代碼:
[HttpPost]
public async Task<IActionResult> UploadFile(IFormFile file)
{
if (file == null || file.Length == 0)
{
return BadRequest("Invalid file");
}
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "uploads", file.FileName);
using (var stream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(stream);
}
return Ok();
}
文件下載:
PhysicalFileProvider
和FileContentResult
類來提供要下載的文件數據。File
類型的ActionResult
對象,該對象包含要下載的文件路徑和MIME類型。示例代碼:
public IActionResult DownloadFile(string fileName)
{
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "uploads", fileName);
if (!System.IO.File.Exists(filePath))
{
return NotFound();
}
var provider = new PhysicalFileProvider(Directory.GetCurrentDirectory());
var fileInfo = provider.GetFileInfo(fileName);
var fileStream = System.IO.File.OpenRead(filePath);
return File(fileStream, "application/octet-stream", fileName);
}
以上是ASP.NET Core中文件上傳與下載的簡單示例,實際應用中可能還需要考慮文件大小限制、文件類型限制、文件存儲路徑等問題。