【问题标题】:fileupload in aspcore api multiple parametersasp core api中的fileupload多个参数
【发布时间】:2021-09-03 01:03:19
【问题描述】:

所以我的文件上传如下:

ApiController]
    [Route("[controller]")]
    public class FilController : Controller
    {
        private IWebHostEnvironment iwebHostEnvironment;

        public void DemoController(IWebHostEnvironment _iwebHostEnvironment)
        {
            iwebHostEnvironment = _iwebHostEnvironment;
        }

        [HttpPost]
        public async Task<IActionResult> Upload(List<IFormFile> files) // få in i AddRequest metoden?
        {
            try
            {
                var result = new List<Filer>();
                foreach (var file in files)
                {
                    var path = Path.Combine(this.iwebHostEnvironment.WebRootPath, "images", file.FileName); // ändra path stämmer inte fixa t databas senare
                    var stream = new FileStream(path, FileMode.Create);
                    await file.CopyToAsync(stream);
                    result.Add(new Filer() { Name = file.FileName, Length = file.Length });
                }
                return Ok(result);
            }
            catch
            {
                return BadRequest();
            }
        }
    }

型号如下:

 public class Filer
    {
        public int filesID { get; set; }

        public long Length { get; set; }

        public string Name { get; set; }

        public string meddelande { get; set; }
    }

现在我希望字符串“meddelande”能够在邮递员中接受这样的字符串:

在上传方法中添加“meddelande”的下一步是什么?

【问题讨论】:

    标签: c# asp.net asp.net-core asp.net-web-api postman


    【解决方案1】:

    只需执行以下操作:

    [HttpPost]
    public async Task<IActionResult> Upload(List<IFormFile> files, [FromForm] string meddelande)
    {
       ...
    }
    

    另外附注:我不懂丹麦语或瑞典语或其他任何语言,我也不知道 meddelande 是什么意思。但通常,如果您公开一个 REST API,至少将参数命名为英文是有意义的 - 就像您对 files 参数所做的那样。

    【讨论】:

      【解决方案2】:

      .net core中模型绑定默认会获取表单字段,可以参考官方doc。您只需将string meddelande 添加到您的操作参数中即可。

      [HttpPost]
      public async Task<IActionResult> Upload(List<IFormFile> files,string meddelande)
      {
         ...
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-20
        • 2018-07-26
        • 2018-11-02
        • 2021-08-10
        相关资源
        最近更新 更多