首页 > 解决方案 > aspcore api中的fileupload多个参数

问题描述

所以我的文件上传如下:

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.netasp.net-coreasp.net-web-apipostman

解决方案


只需执行以下操作:

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

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


推荐阅读