Weblogic 文件上传,request传数据问题

sunmm0823 2014-10-16 06:37:40
最近在用做spring 做文件上传功能,同样的代码,在tomcat中运行正常,
转到weblogic 中部署之后,提交的表单中的file无法通过request传递。

controller方法头部为
@RequestMapping("/saveSysdataTree")
public ModelAndView saveSysdataTree(HttpServletRequest request) throws Exception{

log.info("上传进来了~");
Map<String, Object> map = new HashMap<String, Object>();

在Map那行打上断点,调试时,
log.info()信息能打印出来,查看request的值时发现,

request里面的mutipartFiles参数值为{}空。

尝试过 public ModelAndView upload(@RequestParam("alais")
String name, @RequestParam("file")
MultipartFile file,HttpServletRequest request) throws Exception {

System.out.println("进来了!");

这种写法,在tomcat里面能正常运行,在weblogic中部署完执行上传功能时,
报异常:
at:[2014-10-16 18:34:42] ERROR ExceptionHandler:49 - ExceptionHandler error====
org.springframework.web.bind.MissingServletRequestParameterException: Required MultipartFile parameter 'file' is not present

(tomcat中一切正常,)


求各路大神指点~
...全文
559 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
cna_net 2015-04-20
  • 打赏
  • 举报
回复
我也出现此问题,原因是spring配置时:<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"/> <property name="maxInMemorySize" value="10240"></property> <!-- 最大内存大小 --> <property name="uploadTempDir" value="/tmp/"></property> <property name="maxUploadSize" value="-1"></property> <!-- -1代表没有限制 --> </bean> 中id配置错误。
sunmm0823 2014-10-17
  • 打赏
  • 举报
回复
部署和执行上传操作的时候,都不报错,表单中其他类型的数据都能正常获取, 只有type=“file” 类型的数据,在提交到action中的时候丢失。 weblogic 版本12.1,jdk1.7,spring3.05,3.1.1,3.2.0都尝试过。 网上有说可能是weblogic版本的问题,正在尝试。
EverWHL 2014-10-17
  • 打赏
  • 举报
回复
好吧,看来这是weblogic和tomcat的差异了 好好研究下你这个问题 上完整的错误信息
sunmm0823 2014-10-17
  • 打赏
  • 举报
回复
不少jar包,表单上有enctype。 <form enctype="multipart/form-data" action="×××.do" method="post">
EverWHL 2014-10-17
  • 打赏
  • 举报
回复
你jar什么的都不缺吧 form表单属性上也有enctype="multipart/form-data"。
sunmm0823 2014-10-17
  • 打赏
  • 举报
回复
现在不是代码的问题,是request中没有file文件, 因为同样的工程,同样的代码,在tomcat中运行时, 完全没有问题 MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request; MultipartFile file = mRequest.getFile("file");
EverWHL 2014-10-17
  • 打赏
  • 举报
回复
引用 7 楼 sunmm0823 的回复:
因为input里面有type=“file”的输入,想在方法里面用参数直接获取 @RequestParam("file") MultipartFile file 应该能够获取到input的type=“file” 的输入才对的啊。
如果页面上有<input type="file" name="file" id="file">它的话 file确实能获取到,不过是通过这样获取

long fileSize=file.getSize(); //文件大小
String fileName=file.getOriginalFilename(); //文件名称
InputStream inputStream=file.getInputStream(); //文件流
sunmm0823 2014-10-17
  • 打赏
  • 举报
回复
补充:在提交页面里,其他的数据都能够正常获取(通过request直接获 取或者通过@RequestParam方式获取都可以),只有type=“file”类型的 数据获取不到。
sunmm0823 2014-10-17
  • 打赏
  • 举报
回复
因为input里面有type=“file”的输入,想在方法里面用参数直接获取 @RequestParam("file") MultipartFile file 应该能够获取到input的type=“file” 的输入才对的啊。
EverWHL 2014-10-17
  • 打赏
  • 举报
回复
纠正一下 只会找type="file"的
EverWHL 2014-10-17
  • 打赏
  • 举报
回复
引用 4 楼 sunmm0823 的回复:
是这么写的,<input type="file" name="file" /> 在controller中的方法的参数中尝试过使用 @RequestParam("file") MultipartFile file 在执行上传文件操作时,报错:Required MultipartFile parameter 'file' is not present
@RequestParam("file") MultipartFile file 它只会找input 类型为type的 小哥 ,你这样肯定报找不到啦
sunmm0823 2014-10-17
  • 打赏
  • 举报
回复
是这么写的,<input type="file" name="file" /> 在controller中的方法的参数中尝试过使用 @RequestParam("file") MultipartFile file 在执行上传文件操作时,报错:Required MultipartFile parameter 'file' is not present
EverWHL 2014-10-17
  • 打赏
  • 举报
回复
parameter 'file' 没找到这个参数 楼主用的springmvc 你页面上传附件的input框是这么写的吗 <input id="file" name="file" type="file"> 建议最好用file,这个名字是关键字可换成filename
sunmm0823 2014-10-17
  • 打赏
  • 举报
回复
感谢关注,文件上传的路径没有问题
EverWHL 2014-10-16
  • 打赏
  • 举报
回复
上传的文件地址是不是有问题

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧