SpringMvc的文件上传 和如何获取服务器的真正的文件路径

1、在表单中注意使用 enctype="multipart/form-data"

<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>

	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";
	}



你可能感兴趣的:(Spring,SpringMVC)