package com.yeshi.buwan.filter; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; /** * @author hxh * @title: RequestFilter * @description: request过滤器 * @date 2021/10/16 13:40 */ public class RequestFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) servletRequest; String contentType = httpRequest.getContentType(); if (contentType != null && contentType.contains("multipart/form-data")) { httpRequest.setCharacterEncoding("UTF-8"); MultipartResolver resolver = new CommonsMultipartResolver(httpRequest.getSession().getServletContext()); MultipartHttpServletRequest multipartRequest = resolver.resolveMultipart(httpRequest); // 将转化后的 request 放入过滤链中 servletRequest = multipartRequest; } filterChain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { } }