金蝶Apusic 应用服务器9.0版本上,springboot项目关于文件上传的一个问题

项目部署在金蝶v9上使用文件上传时,请求接口获取不到参数。但是在本地启动应用是可以获取到参数,没有任何问题。

@RequestMapping("doUpload")
public void doUpload(DocAttaPage page,@RequestParam(value = "file") MultipartFile file,
                Integer chunk,Integer chunks,HttpServletResponse response){

}

排查问题过程:

前端请求格式Content-Type: multipart/form-data,浏览器看请求也有发送参数。

后端debugger发现,能进入接口,就是没有参数。

经过不懈的调试,发现在springboot项目中默认用了StandardServletMultipartResolver来解析文件上传,而上传文件有两种方式,还有一种需要用CommonsMultipartResolver解析。

两者的区别子在于:

在项目中加入

@Bean(name = "multipartResolver")
public MultipartResolver multipartResolver() {
   CommonsMultipartResolver resolver = new CommonsMultipartResolver();
   resolver.setDefaultEncoding("UTF-8");
   return resolver;
}

使用CommonsMultipartResolver就完美解决问题,无论本地,还是金蝶v9应用服务器上都可以。

分析:查看金蝶V9的目录lib中,似乎并没有发现有servlet相关的jar包,项目中也没有引入,因为Tomcat的lib中是有servlet的相关jar的。再者项目中有引入了Apache Commons FileUpload方式上传所依赖的jar包,commons-fileupload和commons-io。我猜测是金蝶V9不支持 Servlet 3.0+ Part A。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值