SpringMVC多文件上传

来源:互联网 发布:网络文学社简介 编辑:程序博客网 时间:2024/06/08 06:21
springmvc-servlet.xml中加入如下代码:
<bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="utf-8" /><property name="maxUploadSize" value="10485760000" /><property name="maxInMemorySize" value="40960" /></bean>

方式一:

@RequestMapping("/upload2")public String upload2(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException,IOException {// 解析器解析request的上下文CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());// 先判断request中是否包涵multipart类型的数据,if (multipartResolver.isMultipart(request)) {// 再将request中的数据转化成multipart类型的数据MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;// 取得request中的所有文件名System.out.println(multiRequest.getContentLength());Iterator<String> iter = multiRequest.getFileNames();while (iter.hasNext()) {// 取得上传文件MultipartFile multipartFile = multiRequest.getFile((String) iter.next());System.out.println("文件长度: " + multipartFile.getSize());System.out.println("文件类型: " + multipartFile.getContentType());System.out.println("文件名称: " + multipartFile.getName());System.out.println("文件原名: "+ multipartFile.getOriginalFilename());System.out.println("========================================");if (multipartFile != null) {// 取得当前上传文件的文件名称String fileName = multipartFile.getOriginalFilename();// 如果名称不为“”,说明该文件存在,否则说明该文件不存在if (fileName.trim() != "") {// 定义上传路径String path = request.getSession().getServletContext().getRealPath("/upload")+ File.separator + fileName;System.out.println(path);File localFile = new File(path);multipartFile.transferTo(localFile);// multipartFile.getInputStream();//可以获取输入流}}}}return "/success";}
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript"></script></head><body><h>添加用户</h><form name="userForm" action="/SpringMVC/file/upload2" method="post"enctype="multipart/form-data">选择文件:<input type="file" name="afile"> <br />选择文件:<input type="file" name="bfile"><br />选择文件:<input type="file" name="cfile"> <br /><input type="submit" value="上传"></form></body></html>
注意,<input type="file" name="afile">中name必须不一样,否则Iterator<String> iter = multiRequest.getFileNames()只能得到一个。

方式二:

@RequestMapping("/upload3")public String upload3(HttpServletRequest request,HttpServletResponse response, @RequestParam MultipartFile[] afile)throws IllegalStateException, IOException {// 定义上传路径String path = request.getSession().getServletContext().getRealPath("/upload")+ File.separator;for (MultipartFile multipartFile : afile) {if (!multipartFile.isEmpty()) {System.out.println("文件长度: " + multipartFile.getSize());System.out.println("文件类型: " + multipartFile.getContentType());System.out.println("文件名称: " + multipartFile.getName());System.out.println("文件原名: "+ multipartFile.getOriginalFilename());System.out.println("========================================");File localFile = new File(path+ multipartFile.getOriginalFilename());System.out.println(localFile);multipartFile.transferTo(localFile);}}return "/success";}
参数MultipartFile[] afile必须要有@RequestParam注解。

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript"></script></head><body><h>添加用户</h><form name="userForm" action="/SpringMVC/file/upload2" method="post"enctype="multipart/form-data">选择文件:<input type="file" name="afile"> <br />选择文件:<input type="file" name="afile"><br />选择文件:<input type="file" name="afile"> <br /><input type="submit" value="上传"></form></body></html>
这里,<input type="file" name="afile">中,name必须一致,而且upload3()中的MultipartFile[] afile参数名相同。
0 0
原创粉丝点击