1. 上传文件接口
@Slf4j
@Validated
@RestController
@RequestMapping("/file")
public class FileController {
@PostMapping("/upload")
public RetResult<FlagVo> upload(@RequestParam MultipartFile file) {
if (file.isEmpty()) {
throw new BizException("上传文件为空");
}
try (InputStream inputStream = file.getInputStream()) {
String targetFileName = file.getOriginalFilename();
boolean flag = FileUtil.upload(inputStream, targetFileName);
return RetModel.ok().setData(ViewObject.flag(flag));
} catch (IOException e) {
throw new BizException("上传文件异常");
}
}
}
2. springboot上传文件报错
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: Stream closed
原因:springboot 2.1.9.RELEASE 版本升级到2.3.0.RELEASE后,上传文件报FileUploadException,因使用logback过滤器引起
解决 yml添加配置
spring:
mvc:
hiddenmethod:
filter:
enabled: true
spring-boot-autoconfigure-2.3.4.RELEASE.jar
spring-configuration-metadata.json
{
"name": "spring.mvc.hiddenmethod.filter.enabled",
"type": "java.lang.Boolean",
"description": "Whether to enable Spring's HiddenHttpMethodFilter.",
"defaultValue": false
}