开发过程中遇到过滤文件类型的问题,需要校验文件的头信息,,在过滤器中通过request获取文件流信息  但是后续的controller中的MultipartFile一直都是空的,网上的网友的方案使用了一堆比如 使用BodyReaderHttpServletRequestWrapper 封装 但是不好用,说一下我自己的解决方案。

直接上代码:一目了然

    @Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest) request;String contentType = request.getContentType();if(null != contentType && contentType.contains("multipart/form-data")){//说明是文件上传
        CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();MultipartHttpServletRequest resolveMultipart = commonsMultipartResolver.resolveMultipart(req);        boolean b = true;Map<String, MultipartFile> fileMap = resolveMultipart.getFileMap();for (String key : fileMap.keySet()) {MultipartFile multipartFile = fileMap.get(key);InputStream is = multipartFile.getInputStream();//你的过滤逻辑b=false;}}}        if(b){chain.doFilter(resolveMultipart, response);}}else{chain.doFilter(request, response);}}

这样过滤以后,后续的controller中的MultipartFile就不为空了。搞定!!!

转载于:https://www.cnblogs.com/wgy-01/p/11442346.html

springmvc框架下Filter过滤器中过滤文件后 后续 controller为空的问题相关推荐

  1. springMVC框架下JQuery传递并解析Json数据

    json作为一种轻量级的数据交换格式,在前后台数据交换中占领着很重要的地位.Json的语法很简单,採用的是键值对表示形式.JSON 能够将 JavaScript 对象中表示的一组数据转换为字符串,然后 ...

  2. Layui框架下:JS中根据后台查询到的数据动态往div中ul里面动态添加li

    Layui框架下:JS中根据后台查询到的数据动态往div中ul里面动态添加li 先建立好一个div和ul JS代码: $(function () { layui.admin.req({ url: _s ...

  3. 文件管理搜不到Android 里的文件,Android:在原始文件夹中添加文件后窗口找不到内容容器视图...

    正在获取窗口找不到内容容器视图.这个错误询问应用程序何时将检查权限Android:在原始文件夹中添加文件后窗口找不到内容容器视图 我注意到,对于穿着应用程序,我正在将穿着apk复制到原始文件夹中.它有 ...

  4. Filter过滤器~~~编码过滤和登陆验证

    Filter过滤器··简介: Filter过滤器是一个小型的web组件(web三大组件之一), 可以动态地拦截url请求和响应, 以便查看.提取或操作包含在url请求和响应中的信息. Filter过滤 ...

  5. springMVC设置静态资源过滤器,过滤js、css、images等静态资源

    首先看个index.jsp首页的代码 <%@ page contentType="text/html;charset=UTF-8" language="java&q ...

  6. win10下修改jar中的文件

    需求:现在我需要将下面jar包中某个文件修改一下 首先在cmd命令下执行 jar -xvf ruoyi-admin.jar 解压jar包 解压后得到 修改BOOT-INF\classes\applic ...

  7. Springmvc框架下 jsp显示页面出现源码

    最近在开发时有一个很奇怪的问题,使用springmvc框架时 jsp页面这么写 访问页面正常 而我加头部<%%>这些,就显示源码 我觉得非常奇怪,思考几天了,最后还是询问大佬才知道为什么 ...

  8. 拷贝文件产生副本_从Windows 10中删除文件后,文件的副本在文件历史记录中保留多长时间?...

    拷贝文件产生副本 If you have decided to make use of Windows 10's file history capabilities, how long will a ...

  9. linux文件格式 磁盘修复6,linux(centos)下ext4硬盘格式误删文件后的恢复(testdisk与photorec的使用)...

    在使用winscp上传服务器图片时,由于不小心误删了相似的一个目录下的图片文件,正好在本地有没有这个文件夹的图片备份,所以只好寻找linux(centos)下的文件恢复工具. 在成功恢复完所在目录的图 ...

最新文章

  1. 奇妙的Base64编码
  2. 《算法竞赛进阶指南》打卡-基本算法-AcWing 93. 递归实现组合型枚举:递归与递推、dfs、状态压缩
  3. OriginPro 2021b SR1 9.8.5 for win 科学绘图完美中文版
  4. APP技巧:推荐6款超级实用的APP软件,赶快下载试试吧!
  5. ORM sqlachemy学习
  6. 开机选择启动项的快捷键
  7. c#从Access数据库中选择时,Select条件有日期时间型字段的问题
  8. python实现50行代码_利用 50行Python 代码构建一个在线文本生成器!
  9. JAVA商城系统源码
  10. ie浏览器开发者模式修改默认ie版本
  11. ubuntu修改IP后无法正常上网的解决
  12. 卡方检验python程序_卡方检验及其python实现
  13. POI Excel列宽设置
  14. POJ 【1088】 滑雪
  15. 理解PHP网页运行原理
  16. 速成实用硬笔字——最常用高频汉字前100
  17. 网易邮箱添加附件功能原理浅析
  18. 致敬!烈日下的测绘者,请为他们点赞!
  19. 腾讯广点通广告投放-转化归因API回传接口对接踩坑指南
  20. Team Project Proposal: 开始页--为你的Outlook而生--By Qiaolin Xia

热门文章

  1. 高手经验:一个新手的verilog学习经验
  2. 记录: 开发中的2个线程的使用问题
  3. swap最大值和平均值_SWAP:Softmax加权平均池
  4. 【Android 修炼手册】Gradle 篇 -- Gradle 的基本使用
  5. python的基础命令_Python必学之命令行常用的命令
  6. python做abaqus后处理_python进行abaqus后处理的二次开发,我想提取odb文件中的nodeSet,结果总提示Keyerror,请各位大神指教。...
  7. python3中异常处理_python中的五种异常处理机制介绍|python3教程|python入门|python教程...
  8. java 限制参数类型_java定义受限制的类型参数操作
  9. Apress Pro Android 2
  10. Linux高级编程--01.vi命令