springMVC上传文件

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

    首先配置web.xml文件:

<servlet>
 	<servlet-name>springMVC</servlet-name>
 	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:/config/springAnnotation-servlet.xml</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
 </servlet>
  
    <filter>  
    <filter-name>characterEncodingFilter</filter-name>  
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
    <init-param>  
        <param-name>encoding</param-name>  
        <param-value>UTF-8</param-value>  
    </init-param>  
    <init-param>  
        <param-name>forceEncoding</param-name>  
        <param-value>true</param-value>  
    </init-param>  
</filter>  
<filter-mapping>  
    <filter-name>characterEncodingFilter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>  
 <servlet-mapping>
 	<servlet-name>springMVC</servlet-name>
 	<url-pattern>/</url-pattern>
 </servlet-mapping> 

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

    下面配置springMVC文件:

	<!-- 注解扫描包 -->
	<context:component-scan base-package="com.tgb.web.controller.annotation.upload"/>
	
	<!-- 开启注解 -->
	<mvc:annotation-driven/>
	<!--  <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
	<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
	-->
		<!-- 静态资源访问 -->
	<mvc:resources location="/img/" mapping="/img/**"/>
		<mvc:resources location="/js/" mapping="/js/**"/>
	

	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean> 
 
 <!-- 上传拦截,如最大上传值及最小上传值 -->  
   
 <bean id="multipartResolver"
       class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- set the max upload size100MB -->
    <property name="maxUploadSize">
        <value>800000</value>
    </property>
    <property name="maxInMemorySize">
        <value>4096</value>
    </property>
   </bean>
 
</beans>

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

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

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

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

@RequestMapping("/upload1")
	public String upload2(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException{
		//创建一个通用的多部分解析器.   
		CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
		 //判断 request 是否有文件上传,即多部分请求...  
		if(multipartResolver.isMultipart(request))
		{
			 //判断 request 是否有文件上传,即多部分请求...  
			MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)(request);
			
			Iterator<String> iter = multiRequest.getFileNames();
			while(iter.hasNext()){
				MultipartFile file = multiRequest.getFile(iter.next());
				String fileName = "demoUpload" +file.getOriginalFilename();
				String path ="F:/" +fileName;
				File localFile = new File(path);
				file.transferTo(localFile);
				
			}
		}		
		
		return "/success";
	}

    最后是前台界面:


	<h>上传文件</h>
	<form name="userForm" action="/springMVC1/file/upload1" method="post" enctype="multipart/form-data">
		选择文件:<input type="file" name="file">
		<input type="submit" value="上传">
	</form>

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

    

springMVC上传文件,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。