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>
浙公网安备 33010602011771号