swagger-ui提交请求,请求不包含name值,造成后台无法进行接受参数。

@Operation(description = "上传文件",tags = "上传")
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public BaseResponseDataVo<UploadFileModel> uploadFile(@Parameter(style = ParameterStyle.FORM,explode = Explode.TRUE) MultipartFile multipartFile){ String yearMonthDay = DateFormatUtils.format(new Date(), "yyyyMMdd"); return null;
}

// 就算把@Parameter换成 @Parameter(name = "multipartFile",schema = @Schema(type = "string",format = "binary"))  也不行,使用@ApiParam也不会提交携带name属性名
//swagger的@RequestBody和spring的RequestBod依旧解决不了问题

// swagger的@RequestBody(content = @Content(mediaType = "application/octet-stream",schema = @Schema(type = "string",format = "binary",name = "file"))) 也解决不了问题
// 把@Parameter注解换成swagger1.5.X的@ApiParam(name = "multipartFile",value = "文件对象")注解,也依旧无果

说明:我指的name值就是form表单input元素的name值,没有这个值你后台接收不到的

经过多次尝试无果后,再@Parameter注解位置再添加一个 @RequestPart("file") 注解即可解决swagger提交请求无name值的问题

@RequestParam注解DOC文档翻译:

指示方法参数应绑定到Web请求参数的注释。
在Spring MVC和Spring WebFlux中支持注释的处理程序方法,如下所示:

* 在Spring MVC中,“request parameters”映射到查询参数,表单数据和多部分请求中的零件。 这是因为Servlet API将查询参数和表单数据组合到称为“parameters”的单个映射中,并且包括对请求正文(request body)的自动解析。

*  在Spring WebFlux中,“request parameters”仅映射到查询参数。 要处理所有3种查询,表单数据和多部分数据,可以将数据绑定到使用ModelAttribute注释的命令对象。

如果方法参数类型为Map并指定了请求参数名称,则假定适当的转换策略可用,请求参数值将转换为Map。
如果方法参数为Map <String,String>或MultiValueMap <String,String>并且未指定参数名称,则将使用所有请求参数名称和值填充map参数。

@RequestPart注解DOC文档翻译:

可用于将“ multipart / form-data”请求的一部分与方法参数关联的注释。
支持的方法参数类型包括MultipartFile和Spring的MultipartResolver抽象,javax.servlet.http.Part和Servlet 3.0多部分请求结合,或者对于其他任何方法参数,该部分的内容都通过HttpMessageConverter传递,并考虑到请求部分的“ Content-Type”标头。这类似于@RequestBody根据非分段常规请求的内容来解析参数的操作。
请注意,@ RequestParam批注还可用于将“ multipart / form-data”请求的一部分与支持相同方法参数类型的方法参数相关联。

主要区别在于,当方法参数不是字符串或原始MultipartFile / Part时,@ RequestParam依赖于通过注册的Converter或PropertyEditor进行的类型转换,而RequestPart则依赖于HttpMessageConverters的考虑到请求部分的“ Content-Type”标头。 RequestParam可能与名称-值表单字段一起使用,而RequestPart可能与包含更复杂内容的部分一起使用,例如JSON,XML)。

 

swagger-ui提交请求无name(指input中的name属性)值的更多相关文章

  1. jQuery 在IE下对表单中input type="file"的属性值清除

    对一个文件域(input type=file)使用了验证后,我们总会希望把文件域中的值给清空了,在IE中,由于安全设置的原因,是不允许更改文件域的值的,接下来为大家介绍一下解决方法 一般来说,在对一个 ...

  2. django 获取request请求对象及response响应对象中的各种属性值

    django request对象和HttpResponse对象 HttpRequest对象(除非特殊说明,所有属性都是只读,session属性是个例外) HttpRequest.scheme 请求方案 ...

  3. 用in判断input中的placeholder属性是否在这个对象里

    <input id="test"> var ele = document.getElementById("test"); if("plac ...

  4. 移动端input中的placeholder属性垂直

    今天做项目时发现,在手机端用placeholder时,Android手机可以垂直显示:ISO则不能使placeholder垂直;解决办法: .gcddfadf-con-pay-1 input::-we ...

  5. 修改input中的placeholder属性的颜色

    input::-webkit-input-placeholder{ color:#e8e8e8; } input::-moz-placeholder{ /* Mozilla Firefox 19+ * ...

  6. 当input被选中时候获取改input的多个属性值

    <input name="selectTicket" class="selectTic" data-property="${couponDeta ...

  7. js中获取input中所输入的值

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. 移动端UI自动化Appium测试——获取APK的Package及Activity属性值

    1.如果有代码环境,直接在AndroidManifest.xml中查找: package值: Activity值: 2.如果没有开发代码,直接用命令获取: cmd进入到 android-sdk-win ...

  9. Kendo UI diagram 更改connnect线颜色,及shapes的属性值

    1.改diagram中连线的颜色:redraw一下就OK // Change the Line Green diagram.connections[indexS].redraw({ stroke:{ ...

随机推荐

  1. spyeye手机监控最新版分享下载不用碰对方手机,所有聊天内容,照片等都能看见

    spyeye间谍眼介绍的非常详细,不但可以监控用户收发短信和通话记录,还可远程开启手机听筒,监听手机周围声音,实时监控用户的通话,并且利用GPS功能监测到手机用户所在位置,给用户安全隐私造成极大的威胁 ...

  2. 使用ODBC连接MySQL和EXCEL

    1.安装ODBC 安装MySQL的时候,可以直接把ODBC一并安装了.如果没有安装的话,则在 https://dev.mysql.com/downloads/connector/odbc/ 下载相应的 ...

  3. 导出QQ聊天记录并用python处理

    今天和天天弟弟聊天,很有感慨,想把聊天记录保存下来(QQ),教程如下. STEP1  从QQ里导出聊天记录 有两个方法导出:(1)打开聊天窗口中的"聊天记录",右下角是消息管理器, ...

  4. Linux概述及简单命令

    Linux概述及简单命令 转自https://www.cnblogs.com/ayu305/p/Linux_basic.html 一.准备工作 1.环境选择:VMware\阿里云服务器 2.Linux ...

  5. 使用PLSQL 创建Oracle数据库用户并设置权限

    转至https://blog.csdn.net/ying890/article/details/14083029?utm_medium=distribute.pc_relevant_download. ...

  6. mapreduce 中 groupingComparator 用法

    groupingComparator是对reduce输入的数据进行分组,比如 public int compare(WritableComparable a, WritableComparable b ...

  7. matplotlib补充知识及数据清理方法

    今日内容概要 数据操作 数据清洗理论 数据清洗实操 数据操作 read_csv read_excel read_hdf read_html read_json read_msgpack read_sq ...

  8. python字符串格式化输出 %和format举例

    #!/usr/bin/env python # -*- coding: UTF-8 -*- #pyversion:python3.5 #owner:fuzj s1 = "i am %s, i ...

  9. QUIC协议详解

    声明 本文可以自由转载但需注明原始链接.本文为本人原创,作者LightningStar,原文发表在博客园.本文主体内容参考论文[1]完成. 介绍 QUIC,发音同quick,是"Quick ...

  10. while + else 使用,while死循环与while的嵌套,for循环基本使用,range关键字,for的循环补充(break、continue、else) ,for循环的嵌套,基本数据类型及内置方法

    今日内容 内容概要 while + else 使用 while死循环与while的嵌套 for循环基本使用 range关键字 for的循环补充(break.continue.else) for循环的嵌 ...