SpringMVC 파일 업로드 제한은 로그인하지 않은

파일 업로드에 SpringMVC

1) 공통 파일 업로드-IO 공동 도입
2) 추가 MVC 프로필 :

<!--配置上传的解析器-->
<bean id="multipartResolver"
 class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
   <property name="maxUploadSize" value="10485760"/>
   <property name="defaultEncoding" value="UTF-8"/>
</bean>

3) 형태로 태그에 추가된다 :에 enctype은 = "multipart / form-data"를
. 4)의 이름은 또한, 형태 요소 및 엔티티 클래스 속성을 제공하는 파일 필드 파일에, 파일의 도메인 이름 경우 엔티티 클래스 속성, 400 발생한 것처럼 오류
5) 업 방식의 제조

@RequestMapping("addUser")
public String addUser(User user,@RequestParam(value = "imgs",required = false) CommonsMultipartFile imgs){
    if(imgs != null){
        //获得原始文件名
        String name = imgs.getOriginalFilename();
        String suffix = name.substring(name.lastIndexOf("."));
        //使用时间替换原来文件名,避免重复
        String filename = System.currentTimeMillis() + suffix;
        //创建本地文件对象
        File destFile = new File("C:\\xpp\\apache-tomcat-8.0.52\\webapps\\imgs\\" + filename);
        //把上传文件保存到目标文件中
        try {
            imgs.transferTo(destFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
        user.setImg(filename);
    }
    ser.insert(user);
    return "redirect:page?pageNo=1";
}

차단 요청은 로그인하지 않은

1 세션의 사용자 개체에 성공적으로 로그인 후 저장
,이 모든 요청을 차단 세션 사용자의 릴리스에 사용자가 어떤 사용자가 로그인 페이지로 이동이 강요 여부를 확인하는
참고 :이 가로 챌 수없고 로그인과 관련된 등록 요청, 외부 정적 리소스

차단을 정의합니다 :

/**
 * 用户登录拦截器
 * 拦截没有登录的URL请求
 */
public class UserLoginInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        System.out.println("拦截了:" + httpServletRequest.getRequestURL());
        //从Session获得用户,判断用户为空,就强制登录,否则放行
        User user = (User) httpServletRequest.getSession().getAttribute("user");
        if(user == null){
            System.out.println("未登录的请求:" + httpServletRequest.getRequestURL());
            httpServletResponse.sendRedirect("http://localhost:8080/ssm/user/index");
            return false;
        }
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

    }
}

인터셉터 구성 :

<mvc:interceptors>
   <!--配置验证用户登录的拦截器-->
   <mvc:interceptor>
      <!--拦截所有URL-->
      <mvc:mapping path="/**"/>
      <!--不拦截和登录注册相关的URL-->
      <mvc:exclude-mapping path="/**/code.do"/>
      <mvc:exclude-mapping path="/**/*.css"/>
      <mvc:exclude-mapping path="/**/*.js"/>
      <mvc:exclude-mapping path="/**/index"/>
      <mvc:exclude-mapping path="/**/login"/>
      <bean class="com.qianfeng.ssm.interceptor.UserLoginInterceptor"/>
   </mvc:interceptor>
</mvc:interceptors>

추천

출처www.cnblogs.com/macht/p/11681237.html