pom引用
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
springmvc-servlet.xml 中加上以下配置
<!-- 支持上传文件 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- set the max upload size 2MB -->
<property name="maxUploadSize">
<value>1024000000</value>
</property>
<property name="defaultEncoding">
<value>utf-8</value>
</property>
<property name="maxInMemorySize">
<value>10240</value>
</property>
</bean>
<form action="upload.do" method="post" enctype="multipart/form-data">
<input type="hidden" name="method" value="upload"/>
<input type="file" name="file"/>
<input type="submit" value="upload"/>
</form>
/**
* 上传文件测试
* @param request
* @param model
* @return
*/
@RequestMapping(method=RequestMethod.POST, params = "method=upload")
public String upload(HttpServletRequest request,ModelMap model) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd/HH");
/**构建图片保存的目录**/
String logoPathDir = "/files"+ dateformat.format(new Date());
/**得到图片保存目录的真实路径**/
String logoRealPathDir = request.getSession().getServletContext().getRealPath(logoPathDir);
/**根据真实路径创建目录**/
File logoSaveFile = new File(logoRealPathDir);
if(!logoSaveFile.exists())
logoSaveFile.mkdirs();
/**页面控件的文件流**/
MultipartFile multipartFile = multipartRequest.getFile("file");
/**获取文件的后缀**/
String suffix = multipartFile.getOriginalFilename().substring
(multipartFile.getOriginalFilename().lastIndexOf("."));
/**使用UUID生成文件名称**/
String logImageName = UUID.randomUUID().toString()+ suffix;
//构建文件名称
String logImageName = multipartFile.getOriginalFilename();
/**拼成完整的文件保存路径加文件**/
String fileName = logoRealPathDir + File.separator + logImageName;
File file = new File(fileName);
try {
multipartFile.transferTo(file);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
model.put("fileName", fileName);
return "/test/success";
}
}