当前位置: 首页 > news >正文

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即可。

http://www.lryc.cn/news/107816.html

相关文章:

  • 深入学习Mysql引擎InnoDB、MylSAM
  • 第七章:SpringMVC中
  • MySQL数据库——DQL操作——基本查询
  • Electron 开发,报handshake failed; returned -1, SSL error code 1,错误
  • 知识区博主转型——兼做知识区和改造区博主!!!!!
  • Resnet与Pytorch花图像分类
  • 【NLP概念源和流】 03-基于计数的嵌入,GloVe(第 3/20 部分)
  • 【React】关于组件之间的通讯
  • item_get-小红薯-商品详情
  • 网络安全进阶学习第十课——MySQL手工注入
  • 2.3 网络安全协议
  • Apache Flink概述
  • django使用mysql数据库
  • MongoDB文档--基本概念
  • 【TypeScript】TS入门及基础学习(一)
  • Dockerfile构建LNMP镜像(yum方式)
  • Flink Windows(窗口)详解
  • AssetBundle学习
  • CompletableFuture原理与实践
  • 8.3 作业
  • c# COM组件原理
  • Java POI 百万规模数据的导入和导出
  • 如何快速用PHP取短信验证码
  • CloudStack 的 AsyncJobManagerImpl
  • OAuth机制_web站点接入微软azure账号进行三方登录
  • Linux ALSA音频工具aplay、arecord、amixer的使用方法
  • 编写一个最简单的Linux服务端和客户端程序
  • openKylin顺利加入RISC-V 基金会,推动架构芯片与操作系统协同发展
  • SSM(Vue3+ElementPlus+Axios+SSM前后端分离)【二】
  • 出现一次的数字(其他数字出现三次,两次)