栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot中swagger文件上传没有选择文件按钮解决

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot中swagger文件上传没有选择文件按钮解决

SpringBoot中swagger文件上传没有选择文件按钮
  • 问题背景
  • 解决方法
  • 后言
  • END

问题背景

之前看到公司的框架的文件上传功能,想自己也做一个,但自己的工程死活都无法在swagger里显示选择文件的按钮。这是之前的代码,很简洁。但死活无法显示按钮。

	@PostMapping(value = "/video", consumes = "multipart/form-data")
	@ApiOperation("上传视频")
	@ApiOperationSupport(order = 1)
	@ApiImplicitParams({@ApiImplicitParam(name = "file",
			value = "文件对象",
			dataType = "MultipartFile",
			required = true,
			allowMultiple = true)})
	public ApiResult video(@NotNull(message = "文件不能为空") MultipartFile file) {
		uploadService.video(file, "video");
		return ApiResult.success();
	}

进入的请求参数是这个样子

解决方法

前几天在CSDN中无意发现了多文件上传,居然有按钮,于是我灵光一闪:可不可以换一种方法,使用这种多文件上传,但就只需要获取到第一个就好了呢?于是乎,一个优化的代码就形成了:

@PostMapping(value = "/video")
	@ApiOperation("上传视频")
	@ApiOperationSupport(order = 1)
	@ApiImplicitParam(value = "上传视频",
			name = "file",
			value = "文件对象",
			dataType = "MultipartFile",
			required = true,
			allowMultiple = true)
	public ApiResult video(
			@RequestParam("file")
			@NotNull(message = "文件不能为空")
					MultipartFile[] file) {
		UploadVideoVO vo = uploadService.video(file[0], "video");
		return ApiResult.success(vo);
	}

主要的变化是在参数里,以前的是单个文件,后来是一个数组,但在方法里只传入第一个文件。

而这时swagger里是这样显示的

弄了我两个月的文件上传就这样被我解决了。其实只要换一种思路,问题就解决了!!!!

版本如下

	
	
		org.springframework.boot
		spring-boot-starter-parent
		2.3.9.RELEASE
		 
	


		
		
			com.github.xiaoymin
			knife4j-micro-spring-boot-starter
			2.0.8
		
		
			com.github.xiaoymin
			knife4j-spring-boot-starter
			2.0.8
		
		
			io.springfox
			springfox-swagger2
			3.0.0
		
		
后言

不忘初心,牢记使命。
让我们携手,互帮互助,取长补短,一起朝各自的目标奋力迈进!!!

由衷感谢您的观看,您的收获和支持就是我的最大动力!!再次感谢!!

END
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/345020.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号