org.apache.shiro.web.servlet.ShiroHttpServletRequest cannot be cast to org.springframework.web.mult.

项目是springboot+shiro,前期做过上传功能,直接用发现报错:

MultipartHttpServletRequest params = (MultipartHttpServletRequest) request;

控制台报错信息:

java.lang.ClassCastException: org.apache.shiro.web.servlet.ShiroHttpServletRequest cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest

断点调试发现问题:

解决办法:

ShiroHttpServletRequest shiroRequest = (ShiroHttpServletRequest) request;
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
MultipartHttpServletRequest multipartRequest = commonsMultipartResolver.resolveMultipart((HttpServletRequest) shiroRequest.getRequest());

可以正常获取参数:

String pageParam = multipartRequest.getParameter("pageParam");  // 页面的参数..
MultipartFile file = multipartRequest.getFile("filePath"); // 上传的文件id..

写到最后,新增按照原来的写法没问题,编辑保存却需要使用ShiroHttpServletRequest转换一次,前台人员说请求的写法都是一样的很是奇怪。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值