springmvc 文件上传和拦截器

文件上传:

单文件:

@Controller
public class FirstController {
  @RequestMapping("/first")
    public String doFrist(MultipartFile upload, HttpSession session){

    //文件不能为空
    if (upload.getSize()>0){
      String childpath=upload.getOriginalFilename();
      //限定类型
    /*  if (childpath.endsWith("jsp")){

      }*/
      String fatherpath=session.getServletContext().getRealPath("/upload");
      System.out.print(fatherpath);

      //拼接路径
      File file=new File(fatherpath,childpath);
      try {
        //上传
        upload.transferTo(file);
      } catch (IOException e) {
        e.printStackTrace();
      }

    }else{
      System.out.print("文件为空");
    }
    return "/index.jsp";
  }
}

  配置文件:

<context:component-scan base-package="day013shangchuan"></context:component-scan>
 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  <property name="maxUploadSize" value="50000000"></property> //上传文件的总大小
  <property name="maxUploadSizePerFile" value="50000"></property>//单个文件的大小
  <property name="defaultEncoding" value="utf-8"></property> //编码的字符集
 </bean>
 <mvc:annotation-driven></mvc:annotation-driven>

  jsp页面::

<form action="/first" method="post" enctype="multipart/form-data">
    文件:<input type="file" name="upload">
    <input type="submit">
</form>

  多文件上传:

@Controller
public class FirstControllers {
  @RequestMapping("/firsts")
    public String doFrist(@RequestParam MultipartFile [] upload, HttpSession session){

    for (MultipartFile item:upload){
      //文件不能为空
      if (item.getSize()>0){
        String childpath=item.getOriginalFilename();
        //限定类型
    /*  if (childpath.endsWith("jsp")){

      }*/
        String fatherpath=session.getServletContext().getRealPath("/upload");
        System.out.print(fatherpath);

        //拼接路径
        File file=new File(fatherpath,childpath);
        try {
          //上传
          item.transferTo(file);
        } catch (IOException e) {
          e.printStackTrace();
        }

      }else{
        System.out.print("文件为空");
      }
    }


    return "/index.jsp";
  }
}

 配置和上面的一样

  jsp页面:

<form action="/first" method="post" enctype="multipart/form-data">
    文件:<input type="file" name="upload">
    文件1:<input type="file" name="upload">
    文件2:<input type="file" name="upload">
    <input type="submit">
</form>

   

   拦截器:

      

public class FirstInter implements HandlerInterceptor {

    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        System.out.println("111");
        return true;
    }

    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
        System.out.println("333");
    }

    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
        System.out.println("444");
    }

}

  

配置文件:

  

<context:component-scan base-package="day013shangchuan"></context:component-scan>
 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  <property name="maxUploadSize" value="50000000"></property>
  <property name="maxUploadSizePerFile" value="50000"></property>
  <property name="defaultEncoding" value="utf-8"></property>
 </bean>
 <mvc:interceptors>
  <mvc:interceptor>
   <mvc:mapping path="/**"/>
   <bean class="day014lanjie.FirstInter"></bean>
  </mvc:interceptor>
 </mvc:interceptors>

 <mvc:annotation-driven></mvc:annotation-driven>

  

        

原文地址:https://www.cnblogs.com/xu06123/p/8694317.html