标签:
1 1.在SpringMVC中的配置文件dispatcherServlet-servlet.xml中加入 2 3 <!-- 配置MultipartResolver,用于上传文件,使用spring的CommonsMultipartResolver --> 4 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 5 <property name="maxUploadSize" value="5000000"/> 6 <property name="defaultEncoding" value="UTF-8"/> 7 </bean> 8 9 10 2.处理文件上传-单文件传-在controller类里添加 11 //文件上传 12 //添加用户时,为post请求,访问以下代码 13 @RequestMapping(value="/adduser",method=RequestMethod.POST) 14 public String add(@Validated User user,BindingResult bindingResult,MultipartFile attach,HttpServletRequest req){//紧跟validate之后写验证结果 15 if(bindingResult.hasErrors()){ 16 System.out.println("@Validated User user-->"+user); 17 //若有错误,直接掉转到add 视图 18 return "user/add"; 19 } 20 //判断文件是否为空 21 if(!attach.isEmpty()){ 22 //指定文件上传位置 23 String realPath = req.getSession().getServletContext().getRealPath("/resources/upload"); 24 System.out.println("realPath===="+realPath); 25 System.out.println("原始文件的名字"+attach.getOriginalFilename()); 26 System.out.println(attach.getContentType()); 27 System.out.println(attach.getName());//得到页面表单控件的值 28 29 //建立空文件 30 //File.separator="/",File.separator:路径自适应分隔符,适合其它操作系统, 31 File file = new File(realPath+File.separator+attach.getOriginalFilename()); 32 33 try { 34 FileUtils.copyInputStreamToFile(attach.getInputStream(), file); 35 //FileUtils.writeByteArrayToFile(file, attach.getBytes()); 36 //attach.transferTo(file); 37 } catch (Exception e) { 38 // TODO Auto-generated catch block 39 e.printStackTrace(); 40 } 41 System.out.println(attach.getName()+" ======= "+attach.getOriginalFilename()+" ====== "+attach.getContentType()); 42 } 43 userList.put(user.getUserName(), user); 44 return "redirect:/user/userlist"; 45 } 46 47 48 49 50 51 52 3.处理文件上传-多文件上传 53 54 //添加用户时,为post请求,访问以下代码 55 @RequestMapping(value="/adduser",method=RequestMethod.POST) 56 public String add(@Validated User user,BindingResult bindingResult,@RequestParam("attachs") MultipartFile[] attachs,HttpServletRequest req){//紧跟validate之后写验证结果 57 if(bindingResult.hasErrors()){ 58 //若有错误,直接掉转到add 视图 59 return "user/add"; 60 } 61 62 String realPath = req.getSession().getServletContext().getRealPath("/resources/upload"); 63 System.out.println(realPath); 64 //循环 65 for(MultipartFile attach:attachs){ 66 if(!attach.isEmpty()){//判断文件是否为空 67 File file = new File(realPath+"/"+attach.getOriginalFilename()); 68 try { 69 //FileUtils.copyInputStreamToFile(attach.getInputStream(), file); 70 //FileUtils.writeByteArrayToFile(file, attach.getBytes()); 71 attach.transferTo(file); 72 } catch (Exception e) { 73 // TODO Auto-generated catch block 74 e.printStackTrace(); 75 } 76 } 77 } 78 userList.put(user.getUserName(), user); 79 return "redirect:/user/userlist"; 80 } 81 82 83 84 85 86 4.在add.jsp中的form表单中添加,如果是多文件上传就按照需求添加 87 <!--单文件上传文件--> 88 Attach:<input type="file" name="attach"/> 89 90 <!--多文件上传文件,注意:attachs--> 91 Attach1:<input type="file" name="attachs"/><br/> 92 Attach2:<input type="file" name="attachs"/><br/> 93 Attach3:<input type="file" name="attachs"/><br/> 94 Attach4:<input type="file" name="attachs"/><br/>
标签:
原文地址:http://www.cnblogs.com/fifiyong/p/5820086.html