返回顶部
首页 > 资讯 > 精选 >如何使用最小WEB API实现文件上传
  • 404
分享到

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

2023-06-29 06:06:29 404人浏览 泡泡鱼
摘要

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

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

前言:

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

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

没法使用 Swagger 页面测试

一、允许 Content Type

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

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

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

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

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

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

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

二、自定义 OperationFilter

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

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

而在 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<String, OpenApiMediaType>                {                    {                        FileUploadContentType, new OpenApiMediaType                        {                            Schema = new OpenApiSchema                            {                                Type = "object",                                Required = new HashSet<String>{ "file" },                                Properties = new Dictionary<String, OpenApiSchema>                                {                                    {                                        "file", new OpenApiSchema()                                        {                                            Type = "string",                                            Format = "binary"                                        }                                    }                                }                            }                        }                    }                }            };        }    }}

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

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

这将呈现如下 Swagger 页面:

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

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

--结束END--

本文标题: 如何使用最小WEB API实现文件上传

本文链接: https://lsjlt.com/news/322983.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用最小WEB API实现文件上传
    这篇文章主要介绍“如何使用最小WEB API实现文件上传”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用最小WEB API实现文件上传”文章能帮助大家解决问题。前言:我们使...
    99+
    2023-06-29
  • 使用最小 WEB API 实现文件上传的Swagger支持
    目录前言:一、允许ContentType二、自定义OperationFilter前言: 上回,我们使用最小 WEB API 实现文件上传功能《​ ​使用最小 WEB API 实现文件...
    99+
    2024-04-02
  • 使用最小 WEB API 实现文件上传会遇到的坑
    目录前言:一、实现代码二、允许 Content Type三、惊现 BUG四、解决方案结论:前言: 在 .NET 6 之前,实现文件上传功能十分简单: [HttpPost("uploa...
    99+
    2024-04-02
  • 使用最小WEB API实现文件上传会遇到哪些坑及怎么解决
    这篇“使用最小WEB API实现文件上传会遇到哪些坑及怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“使用最...
    99+
    2023-06-29
  • 如何使用PHP实现上传APK文件
    这篇文章主要介绍“如何使用PHP实现上传APK文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用PHP实现上传APK文件”文章能帮助大家解决问题。准备工作在开始之前,我们需要进行一些准备工作...
    99+
    2023-07-05
  • vue中如何使用html5实现文件上传
    这篇文章主要为大家展示了“vue中如何使用html5实现文件上传”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中如何使用html5实现文件上传”这篇文章吧...
    99+
    2024-04-02
  • 如何使用Html5实现异步上传文件
    本篇内容主要讲解“如何使用Html5实现异步上传文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Html5实现异步上传文件”吧! 服务器准备IIS ...
    99+
    2024-04-02
  • 如何使用 Golang 实现异步文件上传?
    如何用 go 实现异步文件上传?使用 http.multipartfile 处理文件上传,它支持并发上传。创建一个 goroutine 来异步上传文件,不会阻塞主线程。使用 io.cop...
    99+
    2024-05-13
    golang 异步文件上传 git
  • 使用AJAX实现上传文件
    本文实例为大家分享了使用AJAX实现上传文件的具体代码,供大家参考,具体内容如下 需求: 在前端页面选择文件上传到服务器的指定位置 前端代码 <form id="upl...
    99+
    2024-04-02
  • springboot多文件上传如何实现使用postman测试多文件上传接口
    这篇文章给大家分享的是有关springboot多文件上传如何实现使用postman测试多文件上传接口的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用postman测试多文件上传接口1、创建测试类(FileCon...
    99+
    2023-06-20
  • 如何使用fileupload组件实现文件上传功能
    要使用fileupload组件实现文件上传功能,你需要进行以下步骤:1. 在HTML文件中,添加一个文件上传的input元素,设置t...
    99+
    2023-08-14
    fileupload
  • 使用 Golang 实现文件上传进度条如何实现?
    golang 中实现文件上传进度条需要以下步骤:下载 github.com/gin-gonic/gin 和 github.com/go-bindata/go-bindata 包;导入这些...
    99+
    2024-05-13
    进度条 文件上传 git golang
  • VB.NET如何实现文件上传
    这篇文章主要为大家展示了“VB.NET如何实现文件上传”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何实现文件上传”这篇文章吧。利用VB.NET向服务器上传文件VB.NET文件上传...
    99+
    2023-06-17
  • vue如何实现文件上传
    本篇内容主要讲解“vue如何实现文件上传”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue如何实现文件上传”吧!1、使用elementUI的 el-upload插件进行上传。html:<...
    99+
    2023-06-29
  • react如何实现文件上传
    本篇内容介绍了“react如何实现文件上传”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!react实现文件上传的方法:1、通过“import...
    99+
    2023-07-04
  • 如何使用Java SpringBoot实现文件上传功能
    小编给大家分享一下如何使用Java SpringBoot实现文件上传功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!测试代码pom.xml:<xml version="1.0"...
    99+
    2023-06-29
  • java如何使用Socket实现文件上传功能
    这篇文章主要介绍了java如何使用Socket实现文件上传功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下文件上传的步骤:服务器端步骤:创建ServerSock...
    99+
    2023-06-29
  • SpringMVC如何使用ResponseEntity实现文件上传下载
    本篇内容主要讲解“SpringMVC如何使用ResponseEntity实现文件上传下载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringMVC如何使用ResponseEntity实现文...
    99+
    2023-06-30
  • 如何使用 Golang 实现 Form 表单文件上传?
    go 语言使用 form 表单实现文件上传包括以下步骤:在 html 中设置 enctype="multipart/form-data" 属性,创建表单。在 go 中使用 r.parse...
    99+
    2024-05-13
    文件上传 golang
  • 如何在 Golang 中使用 RPC 实现文件上传?
    使用 rpc 实现文件上传:创建 rpc 服务器来处理文件上传请求,使用 net/rpc 包创建。创建 rpc 客户端来向服务器发起文件上传请求,使用 net/rpc 包创建,将文件序列...
    99+
    2024-05-13
    文件上传 rpc golang
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作