微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringMVC:上传与拦截器之一

文件上传

文件上传需要使用post请求,且enctype需为multipart/form-data(分段数据)

<form th:action="@{/testUp}" method="post" enctype="multipart/form-data">
</form>
@RequestMapping("/testUp")
public String testUp(multipartfile phone) {
    System.out.println(phone.getName());
    System.out.println(phone.getoriginalFilename());
    return "success";
}
<!--需要在SpringMVC配置文件配置文件上传解析器-->
<!--注意:id必须叫multipartResolver-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

上传

@RequestMapping("/testUp")
public String testUp(multipartfile phone,HttpSession session) throws IOException {
    //通过session创建servletContext对象
    ServletContext servletContext = session.getServletContext();
    //        通过servletContext对象获取photo的真实路径
    String realPath = servletContext.getRealPath("/photo");
    //      判断路径是否存在,如果不存在则创建相对应的路径。
    File file = new File(realPath);
    if(!file.exists()){
        file.mkdir();
    }
    //        获取文件名
    String name = phone.getoriginalFilename();
    //        拼接路径
    String path=realPath+File.separator+name;
    //        上传
    phone.transferTo(new File(path));
    return "success";
}
//        获取文件名
String filename = phone.getoriginalFilename();
//        解决重名问题,使用UUID作为文件名
//        获取文件的后缀
String suffixName = filename.substring(filename.lastIndexOf("."));
//        将UUID转换为String类型
String uuid = UUID.randomUUID().toString();
//        获取新的文件名
String realFileName=uuid+suffixName;

拦截

  • 创建一个类去实现handlerinterceptor,并重写三个方法

    public class TestInterceptor implements handlerinterceptor{}
    
  • SpringMVC的在配置文件注册拦截

    <!--    配置拦截器-->
    <mvc:interceptors>
        <bean class="com.boerk.mvc.interceptor.TestInterceptor"></bean>
    </mvc:interceptors>
    <!--	或者-->
    <mvc:interceptors>
        <ref bean="testInterceptor"></ref>
    </mvc:interceptors>
    
  • 也可以使用拦截拦截指定的路径

    <mvc:interceptor>
        <!--拦截所有请求-->
        <mvc:mapping path="/**"/>
        <!--排除前往主页的请求-->
        <mvc:exclude-mapping path="/"/>
        <ref bean="testInterceptor"></ref>
    </mvc:interceptor>
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐