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. .Net Core AOP之IResultFilter

    一.简介 在.net core 中Filter分为以下六大类: 1.AuthorizeAttribute(权限验证) 2.IResourceFilter(资源缓存) 3.IActionFilter(执 ...

  2. [旧][Android] View 工作原理(一)

    备注 原发表于2016.05.23,资料已过时,仅作备份,谨慎参考 前言 本文参考<Android 开发艺术探索>及网上各种资料进行撰写,目的是为自己理清 Android 中 View 的 ...

  3. 跟Excel说拜拜,这款可视化报表制作工具入股不亏!

    ​相信很多人如果看到漂亮的图表都会很感叹,"为什么可以做的这么漂亮,这么好看?","这个应该怎么做呢?用什么工具可以实现呢?".制作漂亮的可视化一般有这样几个方 ...

  4. Java基础——选择语句

    Java基础--选择语句     1. if语句 规律: 1. 首先计算表达式的值. 2. 若表达式为真,则执行对应语句,为假则不执行.   第一种: if(表达式) 语句;//多个语句可用{} 例如 ...

  5. windbg调试命令

    重要 (1) windbg命令分为标准命令(40个左右),元命令(一百多个)和扩展命令. 标准命令提供最基本的调试功能,不区分大小写.如:bp g dt dv k等 元命令提供标准命令没有提供的功能, ...

  6. spring 中<ref parent="">标签是什么意思;ref标签与ref属性有什么不同;子容器如何引用父容器的bean

    spring的配置文件可能会有多个<property name="a" ref="b" />就是找当前配置文件里的bean 也就是id为b的 < ...

  7. 移动C盘的.gradle文件

    今天参照一位博主的方法,移动了C盘下的.gradle文件,解放C盘,就是设置了一下环境变量,然后就把gradle文件移过去了,运行是可以运行,但是再看其他博主的方法都需要AndroidStudio下的 ...

  8. 自己创建bmp图像

    随便找一张图片,右键选择打开方式为画图,再在画图中保存为bmp即可 如果要保存为png文件,也可以这样

  9. Python:用正则表达式,提取字符串中的所有中文

    import re def clean(line): pattern = re.compile(u'[^\u4e00-\u9fa5]') #中文的范围为\u4e00-\u9fa5 line = re. ...

  10. C语言刷二叉树(一)基础部分

    二叉树基础部分 144. 二叉树的前序遍历 方法一:递归 /** * Definition for a binary tree node. * struct TreeNode { * int val; ...