1、在表单中注意使用 enctype="multipart/form-data"
Username:
Password:
Nickname:
Email:
Attach:
2.在springMvc的配置文件中设置如下内容
3.后面的controller处理: 注意使用Apache 文件上传的jar包,和文件IO的jar包
@RequestMapping(value="/add",method=RequestMethod.POST)
public String add(@Validated User user,BindingResult br,@RequestParam("attach")MultipartFile attach,HttpServletRequest req) throws IOException {//一定要紧跟Validate之后写验证结果类
if(br.hasErrors()) {
//如果有错误直接跳转到add视图
return "user/add";
}
//获取upload文件夹得真实路径
String realpath = req.getSession().getServletContext().getRealPath("/resources/upload");
System.out.println(realpath);
System.out.println(attach.getName);//获取attach的属性名称,也就是前台表单的名称
System.out.println(attach.getOriginalFilename);//获取上传文件的名称
System.out.println(attach.getContentType);//获取上传文件的类型
for(MultipartFile attach:attachs) {
if(attach.isEmpty()) continue;
File f = new File(realpath+"/"+attach.getOriginalFilename());
//Apache的上传文件的工具类
FileUtils.copyInputStreamToFile(attach.getInputStream(),f);
}
users.put(user.getUsername(), user);
return "redirect:/user/users";
}