asp.net

asp.net core如何处理文件上传

小樊
86
2024-11-15 02:11:38
栏目: 编程语言

在ASP.NET Core中处理文件上传,你可以使用以下方法:

  1. 创建一个Model类来表示上传的文件:
public class FileUploadModel
{
    public IFormFile File { get; set; }
}
  1. 在你的控制器中创建一个处理文件上传的方法:
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("文件上传成功");
}
  1. 在你的视图中创建一个表单来上传文件:
<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方法将被调用,文件将被保存到服务器的本地目录。你可以根据需要自定义文件保存的位置和名称。

0
看了该问题的人还看了