SpringMVC文件上传

Posted banzhuanlaowang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC文件上传相关的知识,希望对你有一定的参考价值。

  1. 需要上的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>

 

  1. 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. 在控制层处理代码

技术图片

 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 

 

 

 

 

  1. 拦截器(拦截都是控制层的地址。 filter: )
    1. 创建一个类 实现接口 HandlerInterceptor
    2. 重写接口的中方法
    3. 把创建的类配置到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 

 

以上是关于SpringMVC文件上传的主要内容,如果未能解决你的问题,请参考以下文章

如何使用springmvc实现文件上传

mvc 无法上传大文件 提示超过长度

SpringMVC进行文件的上传以及多文件的上传(转)

spring mvc 怎么大小上传文件控制?

springmvc 多文件上传 MultipartFile 怎么获取前台传过来的参数

spring mvc 文件上传怎么过滤文件类型,如exe文件等