MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext());
使用springMVC对文件上传的解析器来处理文件上传的时候需要在spring的applicationContext里面加上springMVC提供的MultipartResolver的申明这样客户端请求的时候 springMVC会检查request里面是否包含多媒体信息 如果包含了就会使用MultipartResolver进行解析,springMVC会使用一个支持文件 处理的MultipartHttpServletRequest来包裹当前的HttpServletRequest然后使用MultipartHttpServletRequest就可以对文件进行处理了。
一、配置文件:
SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file
二、创建一个简单的上传表单:
- <form action="myAuthIncome/authImageUpload" method="post" enctype="multipart/form-data">
- 选择文件:<input type="file" name="file">
- <input type="submit" value="提交">
- </form>
三、编写上传控制类
MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext());
if (resolver.isMultipart(request)) {
StringBuffer sb = new StringBuffer();
String randomName = StringUtil.getRandomFileName();
logger.info("随机生成新的文件名 : "+randomName);
String uploadFileName = incomeCer.getOriginalFilename();
String newFileName = "";
if(StringUtils.isNotBlank(uploadFileName)){
String suffix = uploadFileName.substring(uploadFileName.indexOf("."));
newFileName = randomName+suffix;
String savePath = basePath+"/"+newFileName;
File saveFile = new File(savePath);
File parentFile = saveFile.getParentFile();
if(saveFile.exists()) {
saveFile.delete();
}else {
if (!parentFile.exists()) {
parentFile.mkdirs();
}
}
FileUtils.copyInputStreamToFile(incomeCer.getInputStream(), saveFile);
}