Knife4j–解决下载文件乱码和上传文件不显示问题

下载问题复现

在SpringBoot中,通过response流导出Excel,结果如下(没有下载按钮,响应内容中直接是乱码):
在这里插入图片描述

解决方案

下面两种方案都能下载文件
方案一:在@ApiOperation注解中加上produces = “application/octet-stream”`

 @ApiOperation(value = "导出数据",produces = "application/octet-stream")
    @PostMapping("exportStorage")
    public void exportStorage(@RequestBody Map map, HttpServletResponse response) {
        fanoutSender.exportExcel(map,response);
    }

方案二:设置响应头

response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));

在这里插入图片描述
点击下载文件就可以下载

上传文件不显示问题复现

依赖

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

代码

 @ApiOperation("上传文件")
        @PostMapping("upload")
        public void upload(MultipartFile files) {

        }

结果
在这里插入图片描述
可以看到,无法上传文件

解决方案

方案一:
在入参上添加注解@RequestPart

@ApiOperation("上传文件")
        @PostMapping("upload")
        public void upload(@RequestPart MultipartFile file) {

        }

方案二:
换依赖:

 <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
            <version>4.1.0</version>
        </dependency>

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值