Knife4j系列--解决不显示文件上传的问题
原文网址:Knife4j系列--解决不显示文件上传的问题_IT利刃出鞘的博客-CSDN博客
简介
本文介绍使用Knife4j时无法上传文件的问题。
问题复现
依赖
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency>
代码
package com.example.demo.business.controller;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;@Api(tags = "文件")
@RestController
@RequestMapping("file")
public class FileController {@ApiOperation("上传文件")@PostMapping("upload")public void upload(MultipartFile file) {}
}
结果

可以看到,无法上传文件。
解决方案
在入参上添加注解@RequestPart
package com.example.demo.business.controller;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;@Api(tags = "文件")
@RestController
@RequestMapping("file")
public class FileController {@ApiOperation("上传文件")@PostMapping("upload")public void upload(@RequestPart MultipartFile file) {}
}
结果

备注
网上有人说需要在方法上加@ApiImplicitParam注解,如下:
package com.example.demo.business.controller;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;@Api(tags = "文件")
@RestController
@RequestMapping("file")
public class FileController {@ApiOperation("上传文件")@PostMapping("upload")@ApiImplicitParam(name = "file", dataTypeClass = MultipartFile.class, paramType = "form")public void upload(@RequestPart MultipartFile file) {}
}
经我测试,这个不需要加。只在参数上加@RequestPart即可。
相关文章:
Knife4j系列--解决不显示文件上传的问题
原文网址:Knife4j系列--解决不显示文件上传的问题_IT利刃出鞘的博客-CSDN博客 简介 本文介绍使用Knife4j时无法上传文件的问题。 问题复现 依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-…...
深入学习Mysql引擎InnoDB、MylSAM
目录 一、什么是MySQL 二、什么是InnoDB 三、什么是MyISAM 四、MySQL不同引擎有什么区别 一、什么是MySQL MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它是由瑞典MySQL AB公司开发并推广,后来被Sun Microsystems收…...
第七章:SpringMVC中
第七章:SpringMVC中 7.1:SpringMVC的视图 SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户SpringMVC视图的种类很多,默认有转发视图和重定向视图。 当工程引入jstl的依赖&…...
MySQL数据库——DQL操作——基本查询
文章目录 前言事前准备——测试数据整表查询指定列查找别名查询MySQL运算符条件查询模糊查询排序查询聚合查询分组查询分组之后的条件筛选 分页查询将整张表的数据插入到另一张表中 前言 MySQL数据库常见的操作是增删查改,而其中数据的查询是使用最多,也…...
Electron 开发,报handshake failed; returned -1, SSL error code 1,错误
代码说明 在preload.js代码中,暴露参数给渲染线程renderer.js访问, renderer.js 报:ERROR:ssl_client_socket_impl.cc(978)] failed; returned -1, SSL error code 1,错误 问题原因 如题所说,跨进程传递消息,这意味…...
知识区博主转型——兼做知识区和改造区博主!!!!!
想脱单的进来,一起交流如何能脱单!!! 为什么——我太羡慕有对象的人了哭死!!!!!! 你是不是很羡慕别人怎么都有女朋友 别人家的女朋友怎么都那么好ÿ…...
Resnet与Pytorch花图像分类
1、介绍 1.1数据集介绍 flower_data├── train│ └── 1-102(102个文件夹)│ └── XXX.jpg(每个文件夹含若干张图像)├── valid│ └── 1-102(102个文件夹)└── ─── └── XXX.jp…...
【NLP概念源和流】 03-基于计数的嵌入,GloVe(第 3/20 部分)
接续上文 【NLP概念源和流】 02-稠密文档表示(第 2/20 部分)...
【React】关于组件之间的通讯
🌟组件化:把一个项目拆成一个一个的组件,为了便与开发与维护 组件之间互相独立且封闭,一般而言,每个组件只能使用自己的数据(组件状态私有)。 如果组件之间相互传参怎么办? 那么就要…...
item_get-小红薯-商品详情
一、接口参数说明: smallredbook.item_get,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/smallredbook/item_get 名称类型必须描述keyString是调用key(http://o0…...
网络安全进阶学习第十课——MySQL手工注入
文章目录 一、MYSQL数据库常用函数二、MYSQL默认的4个系统数据库以及重点库和表三、判断数据库类型四、联合查询注入1、具体步骤(靶场演示):1)首先判断注入点2)判断是数字型还是字符型3)要判断注入点的列数…...
2.3 网络安全协议
数据参考:CISP官方 目录 OSI七层模型TCP/IP体系架构TCP/IP安全架构 一、OSI七层模型 简介 开放系统互连模型(Open System Interconnection Reference Model,OSI)是国际标准化组织(ISO)于1977年发布的…...
Apache Flink概述
Flink 是构建在数据流之上的一款有状态的流计算框架,通常被人们称为第三代大数据分析方案 第一代大数据处理方案:基于Hadoop的MapReduce 静态批处理 | Storm 实时流计算 ,两套独立的计算引擎,难度大(2014年9月&#x…...
django使用mysql数据库
Django开 发操作数据库比使用pymysql操作更简单,内部提供了ORM框架。 下面是pymysql 和orm操作数据库的示意图,pymysql就是mysql的驱动,代码直接操作pymysql ,需要自己写增删改查的语句 django 就是也可以使用pymysql、mysqlclient作为驱动&a…...
MongoDB文档--基本概念
阿丹: 不断拓展自己的技术栈,不断学习新技术。 基本概念 MongoDB中文手册|官方文档中文版 - MongoDB-CN-Manual mongdb是文档数据库 MongoDB中的记录是一个文档,它是由字段和值对组成的数据结构。MongoDB文档类似于JSON对象。字段的值可以包…...
【TypeScript】TS入门及基础学习(一)
【TypeScript】TS入门及基础学习(一) 【TypeScript】TS入门及基础学习(一)一、前言二、基本概念1.强类型语言和弱类型语言2.动态语言和静态语言 三、TypeScript与JavaScript的区别四、环境搭建及演练准备4.1 安装到本地4.2 在线运…...
Dockerfile构建LNMP镜像(yum方式)
目录 Dockerfile构建LNMP镜像 1、建立工作目录 2、编写Dockerfile文件 3、构建镜像 4、测试容器 5、浏览器访问测试: Dockerfile构建LNMP镜像 1、建立工作目录 [roothuyang1 ~]# mkdir lnmp/ [roothuyang1 ~]# cd lnmp/ 2、编写Dockerfile文件 [roothuyang1 …...
Flink Windows(窗口)详解
Windows(窗口) Windows是流计算的核心。Windows将流分成有限大小的“buckets”,我们可以在其上应用聚合计算(ProcessWindowFunction,ReduceFunction,AggregateFunction或FoldFunction)等。在Fl…...
AssetBundle学习
官方文档:AssetBundle 工作流程 - Unity 手册 (unity3d.com) 之前写的博客:AssetBundle学习_zaizai1007的博客-CSDN博客 使用流程图: 1,指定资源的AssetBundle属性 (xxxa/xxx)这里xxxa会生成目录&…...
CompletableFuture原理与实践
文章目录 1 为何需要并行加载2 并行加载的实现方式2.1 同步模型2.2 NIO异步模型2.3 为什么会选择CompletableFuture? 3 CompletableFuture使用与原理3.1 CompletableFuture的背景和定义3.1.1 CompletableFuture解决的问题3.1.2 CompletableFuture的定义 3.2 Complet…...
基于cv_resnet101_face-detection_cvpr22papermogface的Java集成实战:SpringBoot服务调用
基于cv_resnet101_face-detection_cvpr22papermogface的Java集成实战:SpringBoot服务调用 想象一下,你正在为一个金融App开发用户实名认证功能,或者为一个社区门禁系统设计人脸通行模块。核心需求很明确:用户上传一张照片&#x…...
大疆M4系列+YOLOV8识别算法 如何训练无人机罂粟识别检测数据集 让非法种植无处可藏:无人机+AI罂粟识别数据集发布,覆盖花期/果期多阶段检测 无人机俯拍+AI识别罂粟
无人机俯拍AI识别罂粟,准确率超95%!,助力禁毒攻坚》 《科技禁毒再升级!YOLO实测mAP 83.9%》 《让非法种植无处可藏:无人机AI罂粟识别数据集发布,覆盖花期/果期多阶段检测 智慧巡检 {专业级AI巡查无人机…...
Vue 3 中集成 Three.js 场景的完整实践指南
本文详解如何在 vue 3(javascript 版本)项目中正确集成 three.js 基础场景,涵盖 dom 挂载、生命周期协调、渲染循环管理及常见陷阱规避。 本文详解如何在 vue 3(javascript 版本)项目中正确集成 three.js 基础场景…...
告别‘一发一收’:用Wireshark抓包实战解析802.11n的Block ACK机制如何提升Wi-Fi速度
告别“一发一收”:用Wireshark抓包实战解析802.11n的Block ACK机制如何提升Wi-Fi速度 在拥挤的咖啡厅里,你的视频会议突然卡成PPT;游戏团战时,角色莫名漂移——这些糟心体验背后,往往藏着Wi-Fi协议层的效率瓶颈。传统8…...
SAP物料主数据增强进阶:除了MARA,如何搞定MARC工厂级数据与F4搜索帮助增强?
SAP物料主数据增强进阶:MARC工厂级数据与F4搜索帮助实战解析 物料主数据增强是SAP实施过程中最常见的开发需求之一。当基础字段增强已经不能满足业务需求时,开发者往往需要面对两个更具挑战性的场景:工厂级数据(MARC表)…...
【万字文档+PPT+源码】基于springboot+vue电影院管理系统-计算机专业项目设计分享
【万字文档PPT源码】基于springbootvue电影院管理系统-计算机专业项目设计分享 【万字文档PPT源码】基于springbootvue电影院管理系统-可用于毕设-课程设计-练手学习【万字文档PPT源码】基于springbootvue电影院管理系统-计算机专业项目设计分享 摘 要 在飞速发展的今天&…...
如何打造优雅的浮动标签文本字段:SkyFloatingLabelTextField核心实现原理详解
如何打造优雅的浮动标签文本字段:SkyFloatingLabelTextField核心实现原理详解 【免费下载链接】SkyFloatingLabelTextField A beautiful and flexible text field control implementation of "Float Label Pattern". Written in Swift. 项目地址: https…...
《QGIS快速入门与应用基础》285:需求:加载 Landsat 8 遥感影像,制作真彩色/假彩色图
作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...
时序抖动:概念、测量与系统设计优化
1. 时序抖动的基础概念与影响机制在数字系统设计中,时序抖动(Jitter)是指时钟信号边沿相对于理想位置的偏差。这种看似微小的偏差会对系统性能产生深远影响,特别是在高速数据传输和精密信号处理领域。想象一下交响乐团的指挥手势出…...
生成式推荐算法合规性悬崖:GDPR/《生成式AI服务管理暂行办法》双约束下,如何重构用户意图建模链路?
第一章:生成式推荐算法合规性悬崖:GDPR/《生成式AI服务管理暂行办法》双约束下,如何重构用户意图建模链路? 2026奇点智能技术大会(https://ml-summit.org) 在生成式推荐系统中,用户意图建模正面临前所未有的合规性临界…...
