MultipartFile attach
HttpServletRequest re
commons-io-2.0.jar (一定要用2.0以上的版本,否则没有copyInputStreamToFile方法)
commons-fileupload-1.2.1.jar
@RequestMapping(value="/add",method=RequestMethod.POST) public String userAdd(@Validated User user,BindingResult br,MultipartFile attach,HttpServletRequest re) throws IOException{//一定要紧跟validate写,验证结果类,中间如果有其他参数,就会报错 if(br.hasErrors()){ return "user/add"; } if(!attach.isEmpty()){ String realPath = re.getSession().getServletContext().getRealPath("/Resources/upload"); System.out.println(realPath); File f = new File(realPath+"/"+attach.getOriginalFilename()); FileUtils.copyInputStreamToFile(attach.getInputStream(), f); } users.put(user.getNickname(), user); //客户端跳转 return "redirect:/user/users"; }
<!-- 设置multipartResolver才能完成文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="5000000"></property> </bean>
<sf:form method="post" modelAttribute="user" enctype="multipart/form-data"> <%-- <sf:textarea path=""/> --%> Username:<sf:input path="username"/> <sf:errors path="username"></sf:errors></br> Password:<sf:password path="password"/> <sf:errors path="password"></sf:errors></br> Nickname:<sf:input path="nickname"/> <!-- 对于没有path的,必须要在参数里面传,才能接收 --> FileUpload:<input type="file" name="attach"/> <input type="submit" value="添加用户" /> </sf:form>