commons-fileupload.jar、commons-io.jar
springmvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd"> <!-- 扫描 有注解的包 --> <context:component-scan base-package="handler"></context:component-scan> <!--配置视图解析器(InternalResourceViewResolver) --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/views/"></property> <property name="suffix" value=".jsp"></property> </bean> <!--view-name会被视图解析器 加上前缀、后缀 --> <mvc:view-controller path="handler/testMvcViewController" view-name="success"/> <!-- 该注解 会让 springmvc: 接收一个请求,并且该请求 没有对应的@requestmapping时,将该请求 交给服务器默认的servlet去处理(直接访问) --> <mvc:default-servlet-handler></mvc:default-servlet-handler> <!-- 1将 自定义转换器 纳入SpringIOC容器 --> <bean id="myConverter" class="converter.MyConverter"></bean> <!-- 2将myConverter再纳入 SpringMVC提供的转换器Bean <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="myConverter"/> </set> </property> </bean> --> <!-- 3将conversionService注册到annotation-driven中 --> <!--此配置是SpringMVC的基础配置,很功能都需要通过该注解来协调 --> <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven> <!-- 配置 数据格式化 注解 所依赖的bean FormattingConversionServiceFactoryBean:既可以实现格式化、又可以实现类型转换 --> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="myConverter"/> </set> </property> </bean> <!-- 配置CommonsMultipartResolver,用于实现文件上传 将其加入SpringIOC容器. springIoc容器在初始化时,会自动寻找一个Id="multipartResolver"的bean,并将其加入Ioc容器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> <!-- 上传单个文件的最大值,单位Byte;如果-1,表示无限制 --> <property name="maxUploadSize" value="104857600"></property> </bean> </beans>
testUpload
@RequestMapping("testUpload") public String testUpload(MultipartFile file, String desc) throws IOException { System.out.println("文件描述信息:" + desc); InputStream inputStream = file.getInputStream(); String fileName = file.getOriginalFilename(); String path = "E:\0JAVA\JavaFile\" + fileName; OutputStream outputStream = new FileOutputStream(path); int len; byte[] bytes = new byte[1024]; while ((len = inputStream.read(bytes)) != -1) { outputStream.write(bytes, 0, len); } inputStream.close(); outputStream.close(); System.out.println(555555); return "success"; }
index.jsp
<form action="handler/testUpload" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <br> <input type="text" name="desc" value="描述"> <br> <input type="submit" value="上传"> <br> </form>