- 需要上的jar包。Fileupload

2.网页。
表单必须是post提交,编码必须是multipart/form-data 文件上传文本框必须起名。

1 <form action="addstudent" method="post" enctype="multipart/form-data"> 2 姓名:<input type="text" name="name"/> 3 年龄:<input type="text" name="age"/> 4 头像:<input type="file" name="photo"/> <!-- 这里的name必须和controller的()里面的相同 --> 5 <input type="submit" value="上传"/> 6 </form>
- 在springmvc中配置文件上传解析器。

1 <!-- 配置文件上传的解析器 --> 2 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 3 <!-- name:指上传文件的大小 value:指上传文件设定的值 --> 4 <property name="maxUploadSize" value="999999999"></property> 5 </bean>
- 在控制层处理代码

1 package com.zhiyou100.wc.controllter;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5
6 import javax.servlet.http.HttpServletRequest;
7
8 import org.apache.commons.io.FileUtils;
9 import org.springframework.stereotype.Controller;
10 import org.springframework.web.bind.annotation.RequestMapping;
11 import org.springframework.web.multipart.MultipartFile;
12
13 @Controller
14 public class UploadController {
15
16 @RequestMapping("upload") //HttpServletRequest:作用是为了获取上传文件的路径
17 public String upload(MultipartFile myfile,HttpServletRequest request){//MultipartFile myfile:把你上传的文件封装到MultipartFile中
18 //1.一般情况下上传到服务器的目录下,获取网站根目录
19 //获取文件上传真实保存的路径
20 String path=request.getServletContext().getRealPath("/upload");
21
22 //2.创建一个文件对象
23 File file =new File(path);
24 if(!file.exists()) {//该路径不存在
25 file.mkdirs();
26 }
27 //3.获取文件名 用:getOriginalFilename
28 String name= myfile.getOriginalFilename();
29
30 File targetFile=new File(path+"/"+name);
31
32
33
34 System.out.println(name);
35 return "redirect:login.jsp";
36
37 }
38
39
40 }
- 拦截器(拦截都是控制层的地址。 filter: )
- 创建一个类 实现接口 HandlerInterceptor
- 重写接口的中方法
- 把创建的类配置到springmvc文件中。
1.MyInterceptor.java
1 package com.zhiyou100.wc.interceptor;
2
3 import javax.servlet.http.HttpServletRequest;
4 import javax.servlet.http.HttpServletResponse;
5
6 import org.springframework.web.servlet.HandlerInterceptor;
7 import org.springframework.web.servlet.ModelAndView;
8
9 public class MyInterceptor implements HandlerInterceptor{
10
11 @Override
12 public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
13 throws Exception {
14
15 }
16
17 @Override
18 public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
19 throws Exception {
20
21 }
22
23 @Override
24 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
25 Object name= request.getSession().getAttribute("name");
26 if(name!=null) {
27 return true;
28 }else {
29 response.sendRedirect("login.jsp");
30 return false;
31 }
32
33 }
34
35 }