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. ASP.NET Core 6框架揭秘实例演示[09]:配置绑定

    我们倾向于将IConfiguration对象转换成一个具体的对象,以面向对象的方式来使用配置,我们将这个转换过程称为配置绑定.除了将配置树叶子节点配置节的绑定为某种标量对象外,我们还可以直接将一个配置 ...

  2. 深入剖析CVE-2021-40444-Cabless利用链

    背景 CVE-2021-40444为微软MHTML远程命令执行漏洞,攻击者可通过传播Microsoft Office文档,诱导目标点击文档从而在目标机器上执行任意代码.该漏洞最初的利用思路是使用下载c ...

  3. Spring Boot+RabbitMQ 通过fanout模式实现消息接收(支持消费者多实例部署)

    本文章适用的场景:同一条消息可以被多个消费者同时消费.注意:当消费者多实例部署时,会轮询消费消息.网上有大量的的案例展示:P生产一条消息,消费者服务C中建立Q1和Q2两个队列共同消费.但极少的材料展示 ...

  4. 过分简单,Tabluea仪表板与Smartbi自助仪表盘制作流程分享

    上一章节介绍了如何接入数据到系统里面,并且对数据进行处理.那本章节与大家分享Smartbi及Tabluea是如何对数据进行仪表盘制作. ​   这就是Tabluea的工作簿界面,这也是Tabluea可 ...

  5. C语言中puts()和printf()区别

    puts的功能更加单一,只能输出字符串:printf的功能更加广,可以格式化数据,输出多种类型的数据. puts()函数用来向标准输出设备(屏幕)写字符串并换行. 调用方式为puts(string): ...

  6. javaweb添加日常基本依赖

    <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql ...

  7. Go代码规范梳理

    Go代码规范(Code Review) 总结几个开发过程中经常会犯的代码规范错误 参考链接:https://learnku.com/go/wikis/48375 注释语句 // Request 表示运 ...

  8. Kendo UI Grid 使用总结

    Kendo UI Grid控件的功能强大,这里将常用的一些功能总结一下. Kendo UI Grid 固定列 在使用Gird控件显示数据时,如果数据列过多,会出现横向滚动条,很多情况下,我们希望某些列 ...

  9. https 加密原理

    转载于 https://www.cnblogs.com/imteck4713/p/12016313.html 补充: <图解HTTP> 1.引言 随着互联网安全意识的普遍提高,对安全要求稍 ...

  10. 1. 查看NGINX是否在运行.

    1. 查看NGINX是否在运行. ps aux | grep nginx [root@bogon /]# ps aux | grep nginx root 2318 0.0 0.0 56816 127 ...