springboot微服务上传压缩包存储到本地服务器

问题:项目使用微服务开发,通过网关路由到各个服务上,页面上传Excel文件是可以的,但是上传zip压缩包通过网关在传递给zu_user服务时报错如下:

报错1、org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.lang.RuntimeException: java.io.IOException: UT000036: Connection terminated parsing multipart data
报错
2、UT005023: Exception handling request to /gw/v1/user/zc-user/person/import 2022-07-05T11:46:01.652095092Z org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.lang.RuntimeException: java.io.IOException: UT000036: Connection terminated parsing multipart data

问题原因:解析不了zip文件流。

解决方案:

第一步在接口参数加上 @RequestBody 注解,重启项目在执行上传操作,如果失败则执行第二步。

// 导入人员压缩包
@PostMapping("/import")
public ResponseData importPerson(@RequestBody MultipartFile file) {return new ResponseData(personInfoService.importFile(file,super.getUser())); 
}

第二步在zc_user 项目中application.yml增加配置,重启项目在执行上传操作,如果失败则执行第三步。

spring:
  servlet:
    multipart:
      max-file-size: 1GB   #文件最大大小
      max-request-size: 1GB  #文件请求大小
      location: /tmp/pimport  #文件存储路径

第三步在zc_zuul 项目中application.yml增加配置。

spring:
  servlet:
    multipart:
      max-file-size: 1GB   #文件最大大小
      max-request-size: 1GB  #文件请求大小
      location: /tmp/pimport  #文件存储路径

 

前端headers配置:(前端基本上配置Content-Type:multipart/form-data即可,其他都默认就行,如果不行,请参考下面配置)

 

posted @ 2022-07-06 09:45  不良帅~  阅读(1857)  评论(0编辑  收藏  举报