SpringMVC的文件上传方式
需引入相关的jar包
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
原理:
首先,编写相应的jsp
<form action="/user/fileupload" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="upload"><br />
<input type="submit" value="上传" />
配置文件解析器(固定写法)
<!-- 配置文件解析器对象-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760"></property>
</bean>
@RequestMapping("/fileupload")
public String fileupload(HttpServletRequest request, MultipartFile upload) throws Exception {
System.out.println("调用SpringMVC的文件上传");
//配置文件上传的位置
String path = request.getSession().getServletContext().getRealPath("/uploads/");
//判断此路径是否存在
File file = new File(path);
if(!file.exists()){
file.mkdir();
}
//拿到所上传文件名
String filename = upload.getOriginalFilename();
//为了不会覆盖图片,配置UUID唯一值
String uuid = UUID.randomUUID().toString().replace("-","");
//把为一只添加到上传文件名
filename = uuid+"_"+filename;
//上传文件
upload.transferTo(new File(path,filename));
return "success";
}
SpringMVC拦截器
拦截器和过滤器的区别
- 过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术。
- 拦截器是SpringMVC框架独有的。
- 过滤器配置了/*,可以拦截任何资源。
- 拦截器只会对控制器中的方法进行拦截