当前位置: 首页 > 知识库问答 >
问题:

如何在swagger中获得与其他属性相结合的IFormFile上传按钮?

景远航
2023-03-14

我使用 Swagger 创建了一个 Asp.net 核心 3.1 Web api,用于将文件上传到服务器。以下代码工作正常:

    [HttpPost("PostFile")]
    public ActionResult PostFile(IFormFile uploadedFile)
    {            
        var saveFilePath = Path.Combine("c:\\savefilepath\\", uploadedFile.FileName);
        using (var stream = new FileStream(saveFilePath, FileMode.Create))
        {
            uploadedFile.CopyToAsync(stream);
        }
        return Ok();
    }

当我尝试运行这个时,我在swagger中得到了一个很好的上传按钮。

但是,现在我想使用不同的模型。它具有更多的属性以及IFormFile。

public class FileUploadRequest
{
    public string UploaderName { get; set; }
    public string UploaderAddress { get; set; }
    public IFormFile File { get; set; }
}

当我尝试使用此模型时,我在 Swagger 中看不到任何有助于我在请求中附加文件的上传按钮。

出于某种原因,它将表单文件显示为字符串。如何在此处获取上传按钮?

共有1个答案

颛孙飞
2023-03-14

在ASP.NETCore Web API中,它默认绑定Application/json格式数据。但是您的模型需要的是multipart/form-data类型数据。因此您需要[FromForm]属性来指定源。

我使用<code>Swashbuckle。AspNetCoreASP。NET核心3.1:

[HttpPost]
public ActionResult PostFile([FromForm]FileUploadRequest model)
{

}

结果:

 类似资料:
  • 我正试图通过使用< code>allOf来解决这个swagger API继承的问题。这是我的swagger yaml文件。 当我将其粘贴到在线编辑器中时,我收到以下错误,我很难弄清楚。

  • 我只能通过包装每个where条件{'patient id':'123'},{'diet':{$elemmatch:{'status':'a'}}}来使它在Mongo shell中工作。 我如何强制Mongoose将每个查询字段括在花括号中或任何其他想法中?

  • 请帮我解决这个问题。 错误: 路径处的架构错误不应具有其他属性additionalProperty:sepa/sct/{OriginatorAccount}

  • 问题内容: 我不太喜欢MySQL,但是我只需要声明一下,非常感谢您的帮助。 我有两个表:“用户”和“得分” 这是“用户”的结构: 这是“得分”的结构: 现在,我需要一个查询,该查询为我提供了某种高分列表。结果应包含user_id,user_name和与该用户相关的所有分数之和:我应该看起来像这样: 更好的是,如果结果按照用户在全球排名中的排名顺序进行排序,如下所示: 我尝试了这个说法 这会导致语法

  • 我必须使用google places api实现餐厅定位服务,如下所示: https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=43.7666321,11.2546258 但结果与使用谷歌地图进行的近距离搜索大不相同: https://www.google.it/maps/search/Ristoranti/@4

  • 我正在使用springbootersey进行web restful实现。现在我要将swagger集成到我们的应用程序中。我做了以下操作。 我添加了以下对build.gradle的依赖: 我能够启动这个web应用程序,但我想知道哪个url是用来招摇的?我试过了http://localhost:8080, http://localhost:8080/swagger和http://localhost:8