在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
方法将被调用,文件将被保存到服务器的本地目录。你可以根据需要自定义文件保存的位置和名称。