springMVC上传文件

来源:互联网 发布:凤爪女网络暴力 编辑:程序博客网 时间:2024/05/10 22:26

 在看springMVC之前,就听说现在很多公司用SSH的并不多,但是springMVC的不少,感觉springMVC应该是一个比较好用的框架,但是具体怎么用多好用还是没有概念,通过这次简单的学习,发现的确有他的很多优势,下面以springMVC上次为例,写一个简单的springMVC实例,稍微感受一下springMVC 的好处。

    首先配置web.xml文件:

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <servlet>  
  2.     <servlet-name>springMVC</servlet-name>  
  3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  4.     <init-param>  
  5.         <param-name>contextConfigLocation</param-name>  
  6.         <param-value>classpath*:/config/springAnnotation-servlet.xml</param-value>  
  7.     </init-param>  
  8.     <load-on-startup>1</load-on-startup>  
  9.  </servlet>  
  10.     
  11.     <filter>    
  12.     <filter-name>characterEncodingFilter</filter-name>    
  13.     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>    
  14.     <init-param>    
  15.         <param-name>encoding</param-name>    
  16.         <param-value>UTF-8</param-value>    
  17.     </init-param>    
  18.     <init-param>    
  19.         <param-name>forceEncoding</param-name>    
  20.         <param-value>true</param-value>    
  21.     </init-param>    
  22. </filter>    
  23. <filter-mapping>    
  24.     <filter-name>characterEncodingFilter</filter-name>    
  25.     <url-pattern>/*</url-pattern>    
  26. </filter-mapping>    
  27.  <servlet-mapping>  
  28.     <servlet-name>springMVC</servlet-name>  
  29.     <url-pattern>/</url-pattern>  
  30.  </servlet-mapping>   

    springMVC的配置相对比较简单,和之前的配置spring区别不大。

    下面配置springMVC文件:

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <!-- 注解扫描包 -->  
  2. <context:component-scan base-package="com.tgb.web.controller.annotation.upload"/>  
  3.   
  4. <!-- 开启注解 -->  
  5. <mvc:annotation-driven/>  
  6. <!--  <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>  
  7. <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>  
  8. -->  
  9.     <!-- 静态资源访问 -->  
  10. <mvc:resources location="/img/" mapping="/img/**"/>  
  11.     <mvc:resources location="/js/" mapping="/js/**"/>  
  12.   
  13.   
  14. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  15.     <property name="prefix" value="/"></property>  
  16.     <property name="suffix" value=".jsp"></property>  
  17. </bean>   
  18.   
  19. <!-- 上传拦截,如最大上传值及最小上传值 -->    
  20.     
  21. <bean id="multipartResolver"  
  22.       class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
  23.        <!-- set the max upload size100MB -->  
  24.    <property name="maxUploadSize">  
  25.        <value>800000</value>  
  26.    </property>  
  27.    <property name="maxInMemorySize">  
  28.        <value>4096</value>  
  29.    </property>  
  30.   </bean>  
  31.   
  32. lt;/beans>  

    因为web里设置springMVC拦截的是所有的网址,所以,这里需要对图片和js等静态文件进行配置,不然无法识别。

    同时,配置需要上传文件的最大值和最小值,当然,在程序里也可以用代码配置,但是,不提倡。

    这里配置注解,个人认为springMVC的注解很好用,简单易用。

    配置好之后,我们开始写代码:

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. @RequestMapping("/upload1")  
  2.     public String upload2(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException{  
  3.         //创建一个通用的多部分解析器.     
  4.         CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());  
  5.          //判断 request 是否有文件上传,即多部分请求...    
  6.         if(multipartResolver.isMultipart(request))  
  7.         {  
  8.              //判断 request 是否有文件上传,即多部分请求...    
  9.             MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)(request);  
  10.               
  11.             Iterator<String> iter = multiRequest.getFileNames();  
  12.             while(iter.hasNext()){  
  13.                 MultipartFile file = multiRequest.getFile(iter.next());  
  14.                 String fileName = "demoUpload" +file.getOriginalFilename();  
  15.                 String path ="F:/" +fileName;  
  16.                 File localFile = new File(path);  
  17.                 file.transferTo(localFile);  
  18.                   
  19.             }  
  20.         }         
  21.           
  22.         return "/success";  
  23.     }  

    最后是前台界面:

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1.   

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <h>上传文件</h>  
  2. <form name="userForm" action="/springMVC1/file/upload1" method="post" enctype="multipart/form-data">  
  3.     选择文件:<input type="file" name="file">  
  4.     <input type="submit" value="上传">  
  5. </form>  

至此,一个简单上传文件就完成了,

    

0 0
原创粉丝点击