ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-07-27 10:02:50  阅读:395  来源: 互联网

标签:Apusic springboot 金蝶 项目 jar CommonsMultipartResolver resolver 应用服务器 上传


项目部署在金蝶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。

标签:Apusic,springboot,金蝶,项目,jar,CommonsMultipartResolver,resolver,应用服务器,上传
来源: https://blog.csdn.net/u012960278/article/details/119134480

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有