使用SpringMVC上传多文件
1.首先看jsp页面<!-- 注意一点要加上enctype="multipart/form-data",文件的传输格式 -->
<form action="file/upload" method="post" enctype="multipart/form-data">
<table>
<tr><td><input type="file" name="file1"/></td></tr>
<tr><td><input type="file" name="file2"/></td></tr>
<tr><td><input type="file" name="file3"/></td></tr>
<tr><td><input type="submit" value="上传"/></td></tr>
</table>
</form>
2.控制器中的代码
@Controller
@RequestMapping("/file")
public class FileUploadController {
@RequestMapping("/upload")
public String fileUpload(HttpServletRequest request) throws Exception{
//根据request请求创建一多部分解器
CommonsMultipartResolver multipartResolver =new CommonsMultipartResolver(
request.getSession().getServletContext());
//判读是否请求中有没有enctype="multipart/form-data"
if(multipartResolver.isMultipart(request)){
//将request按Multipart的形式分为多个request
MultipartHttpServletRequest multiRequest =(MultipartHttpServletRequest) request;
//获取所有的文件域
Iterator iter = multiRequest.getFileNames();
while(iter.hasNext()){
MultipartFile file = multiRequest.getFile(iter.next().toString());
if(file.getOriginalFilename()!=""){
//获取文件路径(可以在前面加上时间戳防止重复,并可以进行覆盖)
String path=request.getSession().getServletContext().getRealPath("/userfile/")+file.getOriginalFilename();
System.out.println("文件路径:"+path);
//对该文件进行上传,如果文件已存在该如何处理
file.transferTo(new File(path));
}
}
}
return "index";
}
3.springMVC-servlet.xml的代码
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 文件大小1024*1024(自己计算好以Byte单位) 缓冲区大小 字符编码 -->
<property name="maxUploadSize" value="1048576"/>
<property name="maxInMemorySize" value="4096"/>
<property name="defaultEncoding" value="UTF-8"/>
</bean>
注意一点:要导包