zoukankan      html  css  js  c++  java
  • Asp.Net 5上传文件 (Core API方式)

    参考文档

    首先在控制器中注入IWebHostEnvironment

    IWebHostEnvironment提供有关正在运行应用程序的Web托管环境的信息。

    属于命名空间Microsoft.AspNetCore.Hosting

    IWebHostEnvironment接口需要注入为控制器依赖性再后来整个控制器使用。

    该IWebHostEnvironment接口有两个属性。

    • WebRootPath -www文件夹的路径(获取或设置包含Web服务应用程序内容文件的目录的绝对路径)
    • ContentRootPath -根文件夹路径包含了所有应用程序文件(获取或设置IFileProvider在WebRootPath指指点点。) 
    private readonly IWebHostEnvironment _webHostEnvironment;
    
    public CommonController(IWebHostEnvironment webHostEnvironment)
    {
        _webHostEnvironment = webHostEnvironment;
    }

    此处根据WebRootPath = "D:\source\repos\AnnualMeeting\Game\wwwroot",把文件放在wwwroot目录下

    文件上传使用IFormFile

     1 [Route("api/[controller]")]
     2 [ApiController]
     3 public class CommonController : ControllerBase
     4 {
     5     private readonly IWebHostEnvironment _webHostEnvironment;
     6 
     7     public CommonController(IWebHostEnvironment webHostEnvironment)
     8     {
     9         _webHostEnvironment = webHostEnvironment;
    10     }
    11     [HttpPost]
    12     [Route("FileUpload")]
    13     public async Task<IActionResult> FileUpload(IFormFile files)
    14     {
    15 
    16         if (files == null && files.Length <= 0)
    17         {
    18             throw new Exception("Files is Null");
    19         }
    20 
    21         var fileExt = Path.GetExtension(files.FileName);
    22         var newFileName = Guid.NewGuid().ToString() + fileExt;
    23         var path = Path.Combine(_webHostEnvironment.WebRootPath, "Avatar\" + newFileName);
    24         try
    25         {
    26             await using var stream = System.IO.File.Create(path);
    27             await files.CopyToAsync(stream);
    28             return Ok(new { msg = "上传成功", fileName = newFileName });
    29         }
    30         catch (Exception e)
    31         {
    32             throw new Exception(e.Message);
    33         }
    34     }
    35 }

    在swagger中可直接上传测试

  • 相关阅读:
    TypeScript-基础-09-声明文件
    TypeScript-基础-08-类型断言
    TypeScript-基础-07-函数的类型
    TypeScript-基础-06-数组的类型
    TypeScript-基础-05-对象的类型—接口
    TypeScript-基础-04-联合类型
    TypeScript-工程
    小白学前端03
    小白学前端02
    小白学前端
  • 原文地址:https://www.cnblogs.com/liessay/p/14318201.html
Copyright © 2011-2022 走看看