下载问题复现
在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>
结果: