其他分享
首页 > 其他分享> > SpringMVC:上传与拦截器之一

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;

拦截器

标签:拦截器,String,SpringMVC,phone,testUp,servletContext,上传
来源: https://www.cnblogs.com/Boerk/p/15873156.html