千家信息网

如何使用最小WEB API实现文件上传

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"如何使用最小WEB API实现文件上传"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何使用最小WEB API实现文件上传"文章能帮助大家解
千家信息网最后更新 2026年11月02日如何使用最小WEB API实现文件上传

这篇文章主要介绍"如何使用最小WEB API实现文件上传"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何使用最小WEB API实现文件上传"文章能帮助大家解决问题。

前言:

我们使用最小 WEB API 实现文件上传功能,虽然客户端访问是正常的,但是当打开 Swagger 页面时,发现是这样的:

没法使用 Swagger 页面测试。

一、允许 Content Type

正常的 Swagger 页面应该是这样的:

看来,我们需要指定 Content Type:

app.MapPost("/upload",    async (HttpRequest request) =>    {        var form = await request.ReadFormAsync();        return Results.Ok(form.Files.First().FileName);    }).Accepts("multipart/form-data");

结果,Swagger 页面变成了这样,增加了一堆 Form 相关属性,唯独没有 file :

看来,只有自定义 Swagger 页面了。

二、自定义 OperationFilter

在 OpenAPI 3.0 中,文件上传的请求可以用下列结构描述:

而在 Swashbuckle 中,可以使用 IOperationFilter 接口实现操作筛选器,控制如何定义 Swagger UI 的行为。

在这里,我们将利用 RequestBody 对象来实现上述的文件上传的请求结构。

public class FileUploadOperationFilter : IOperationFilter{    public void Apply(OpenApiOperation operation, OperationFilterContext context)    {        const string FileUploadContentType = "multipart/form-data";        if (operation.RequestBody == null ||            !operation.RequestBody.Content.Any(x =>            x.Key.Equals(FileUploadContentType, StringComparison.InvariantCultureIgnoreCase)))        {            return;        }                 if (context.ApiDescription.ParameterDescriptions[0].Type == typeof(HttpRequest))        {            operation.RequestBody = new OpenApiRequestBody            {                Description = "My IO",                Content = new Dictionary                {                    {                        FileUploadContentType, new OpenApiMediaType                        {                            Schema = new OpenApiSchema                            {                                Type = "object",                                Required = new HashSet{ "file" },                                Properties = new Dictionary                                {                                    {                                        "file", new OpenApiSchema()                                        {                                            Type = "string",                                            Format = "binary"                                        }                                    }                                }                            }                        }                    }                }            };        }    }}

然后,在启动代码中配置,应用此操作筛选器:

builder.Services.AddSwaggerGen(setup =>{    setup.OperationFilter();});

这将呈现如下 Swagger 页面:

关于"如何使用最小WEB API实现文件上传"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

文件 页面 最小 知识 结构 行业 筛选器 不同 实用 代码 内容 前言 功能 只有 实用性 实际 客户 客户端 对象 属性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司简介 苏州找大状互联网科技有限公司 互联网科技工作委员会副主任毛军 金融科技还是互联网 互联网下的科技发展 深圳互联网络科技有限公司 广州宏创互联网科技 科技创新互联网企业 互联网科技缩写 互联网科技ppt模板 万达互联网科技 互联网科技素材视频竖屏 中国最先进互联网科技公司 广州慧亚互联网科技怎么样 荆州市昕露互联网络科技有限公司 合肥互联网科技公司公章图片 梅州GM互联网络科技有限公司 互联网金融运营模式中的金融科技 北京互联网科技类企业分布 科技信息时代互联网发展 鸠鸠互联网科技 时间互联网络科技 互联网科技汛 甘肃拓世互联网科技有限公司 济南和联互联网科技有限公司 知域互联网科技有限公司大骗子 互联网科技研发水平 天津腾达互联网科技有限公司 科技互联网行业投资研究 网互联网络科技
0