springmvc文件
<!-- 配置MultipartResolver,用于上传文件,使用Apache的CommonsMultipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="8000000"/>
<property name="defaultEncoding" value="UTF-8"/>
</bean>
jsp层
<form id="userForm" name="userForm" method="post" action="${pageContext.request.contextPath }/user/useraddsave.html" enctype="multipart/form-data">
<div>
<input type="hidden" id="errorinfo" value="${uploadFileError}"/>
<label for="a_idPicPath">证件照</label>
<input type="file" name="a_idPicPath" id="a_idPicPath"/>
<font color="red"></font>
</div>
control层
@RequestMapping(value="/useraddsave.html",method=RequestMethod.POST)
public String addUserSave(User user,HttpSession session,HttpServletRequest request,
@RequestParam(value ="a_idPicPath", required = false) MultipartFile attach){
System.out.println("youjinru");
String idPicPath = null;
//判断文件是否为空
if(!attach.isEmpty()){
//定义上传的目标的路径 因为也许不是windows系统,不识别/ ,所以我们使用自适应的路径分隔符
String path = request.getSession().getServletContext().getRealPath("statics"+File.separator+"uploadfiles");
String oldFileName = attach.getOriginalFilename();//获取//原文件名
String suffix=FilenameUtils.getExtension(oldFileName);//原文件后缀
int filesize = 500000; //定义上传文件的大小
if(attach.getSize() > filesize){//上传大小不得超过 500k
request.setAttribute("uploadFileError", " * 上传大小不得超过 500k");
return "useradd";
//对文件的格式进行判断
}else if(suffix.equalsIgnoreCase("jpg") || suffix.equalsIgnoreCase("png")
|| suffix.equalsIgnoreCase("jpeg") || suffix.equalsIgnoreCase("pneg")){//上传图片格式不正确
//满足提条件后,定义一个新的文件名:规则:
// 当前系统的时间+随机数+"_Personal.jpg"
String fileName = System.currentTimeMillis()+RandomUtils.nextInt(1000000)+"_Personal.jpg";
logger.debug("new fileName======== " + attach.getName());
//建立一个文件对象:
File targetFile = new File(path, fileName);
if(!targetFile.exists()){
targetFile.mkdirs();
}
//保存
try {
//接受用户上传的文件流;
attach.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("uploadFileError", " * 上传失败!");
return "useradd";
}
//上传到服务器的路径:
idPicPath = path+File.separator+fileName;
}else{
request.setAttribute("uploadFileError", " * 上传图片格式不正确");
return "useradd";
}
}
user.setCreatedBy(((User)session.getAttribute(Constants.USER_SESSION)).getId());
user.setCreationDate(new Date());
user.setIdPicPath(idPicPath);
if(userService.add(user)){
System.out.println("tianzhuadao userlist");
return "redirect:/user/userlist.html";
}
return "useradd";
}
pojo层
若是 pojo层中的实体类缺少上传图片路径的字段,那么需要补充上去。数据库同理。
多文件上传