如何使用最小WEB API实现文件上传
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要介绍"如何使用最小WEB API实现文件上传"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何使用最小WEB API实现文件上传"文章能帮助大家解
千家信息网最后更新 2025年11月09日如何使用最小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安全错误
数据库的锁怎样保障安全
网站放在文件服务器上
我的世界基岩版服务器定时执行
科大讯飞软件开发工资怎样
斯柯达自动变数箱数据库
国家网信办网络安全管理局
前端软件开发入门教程
33学软件开发
大数据库建设的战略
互联网 西安电子科技大学
数据库备份及还原界面
湖州涉密信息系统集成软件开发
sql连接本地数据库文件
文学常用数据库推荐
众多游戏服务器现状对比
我的世界网易版个人服务器
一个数据库有几个概念
学软件开发大概要多久
网络安全评分依据
软件开发工具keil的使用
气象数据库
手机网页进不去是服务器的问题吗
包头软件开发怎么样
深圳服务器电源使用方法
学计算机应用还是网络技术好
计算机网络技术导论期末考试卷
保障数据库的安全性
天浩打印机服务器驱动下载
济南巨淘网络技术
东南大学网络安全招生简章
安吉网络安全宣传