版权声明:如需转载,请注明出处,谢谢! https://blog.csdn.net/qq_41172416/article/details/82839439
1、导入jar文件
2、在 springmvc-servlet.xml中配置MultipartResolver
<!-- 配置MultipartResolver,用于上传文件,使用spring的CommonsMultipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="5000000"/>
<property name="defaultEncoding" value="UTF-8"/>
</bean>
注意:
1️⃣ defaultEncoding:请求的编码格式,默认为ISO-8859-1,此处设置为UTF-8(注:defaultEncoding必须和jsp的 pageEncoding设置一致,以便正确读取表单的内容)。
2️⃣ maxUploadSize:上传文件大小上限,单位为字节。
3、编写文件上传表单页
注意:表单的编码类型必须是 “multipart/form-data”类型
<form id="userForm" name="userForm" method="post"
action="${pageContext.request.contextPath }/user/addsave.html"
enctype="multipart/form-data">
<input type="hidden" name="method" value="add">
<!--中间代码省略-->
<div>
<label for="a_idpicpath">证件照:</label>
<input type="file" name="a_idpicPath" id="a_idpicpath" />
<font color="red"></font>
</div>
</form>
4、编写控制器
/**
* 添加用户
* @param user
* @param session
* @return
*/
@RequestMapping(value="/addsave.html",method=RequestMethod.POST)
public String addUserSave(User user,
HttpSession session,
HttpServletRequest request,
@RequestParam(value="a_idpicPath",required=false) MultipartFile attach){
String idPicPath=null;
//判断文件是否为空
if(!attach.isEmpty()){
String path=request.getSession().getServletContext().getRealPath("statics"+File.separator+"uploadfiles");
String oldFileName=attach.getOriginalFilename();//原文件名
String prefix=FilenameUtils.getExtension(oldFileName);//原文件后缀
int filesize=500000;
if(attach.getSize()>filesize){
request.setAttribute("uploadFileError", "上传文件不得超过 500KB");
return "useradd";
}else if(prefix.equalsIgnoreCase("jpg")
|| prefix.equalsIgnoreCase("png")
|| prefix.equalsIgnoreCase("jpeg")
|| prefix.equalsIgnoreCase("pneg")){//上传图片格式不正确
String fileName=System.currentTimeMillis()+RandomUtils.nextInt(1000000)+"_Personal.jpg";
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)){
return "redirect:/user/userlist.html";
}else{
return "useradd";
}
}