SpringMVC文件上传的具体实现代码下载地址:http://download.csdn.net/download/bingbeichen/9799129。
1. 文件上传概述
概述: SpringMVC为文件上传提供了直接的支持,即通过即插即用的MultipartResolver实现;Spring用Jakarta Commons FileUpload技术实现了一个MultipartResolver的实现类CommonsMultipartResovler。
配置: SpringMVC上下文中默认没有装配MultipartResovler,故在进行文件上传时需要在SpringMVC的配置文件中配置;注意其defaultEncoding属性必须和JSP页面的pageEncoding属性一致,以便正确解析表单的内容。
2. 具体实现
①. 添加CommonsMultipartResolver所依赖的jar包;
②. 在SpringMVC配置文件中配置MultipartResolver;
<!-- 配置MultipartResolver,注意必须有id -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="5000000"></property>
</bean>
③. 在index.jsp页面上添加表单元素,以发送文件上传请求;
<form action="testFileUpload" method="post" enctype="multipart/form-data">
File:<input type="file" name="file"/>
Desc:<input type="text" name="desc"/>
<input type="submit" name="Submit"/>
</form>
④. 在处理器中,创建目标方法进行文件上传操作;
package com.qiaobc.springmvc.handlers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class FileUploadHandler {
@RequestMapping("/testFileUpload")
public String testFileUpload(@RequestParam("desc") String desc,
@RequestParam("file") MultipartFile file) throws Exception {
System.out.println("Desc : " + desc);
System.out.println("OriginalFilename : " + file.getOriginalFilename());
System.out.println("Name : " + file.getName());
System.out.println("InputStream : " + file.getInputStream());
return "success";
}
}