阅读量:0
在ASP.NET Core中,文件上传和下载可以通过以下方式实现:
文件上传:
- 在HTML表单中添加一个
<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中文件上传与下载的简单示例,实际应用中可能还需要考虑文件大小限制、文件类型限制、文件存储路径等问题。