Controller获得上传文件的绝对路径

  1. RequestMapping(value = "/upload", method = RequestMethod.POST)  
  2. public ModelAndView onSubmit(HttpServletRequest request,  
  3.         HttpServletResponse response) throws Exception {  
  4.   
  5.     MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;  
  6.     SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd/HH");  
  7.     /** 构建文件保存的目录* */  
  8.     String logoPathDir = "/business/shops/upload/"  
  9.             + dateformat.format(new Date());  
  10.     /** 得到文件保存目录的真实路径* */  
  11.     String logoRealPathDir = request.getSession().getServletContext()  
  12.             .getRealPath(logoPathDir);  
  13.     /** 根据真实路径创建目录* */  
  14.     File logoSaveFile = new File(logoRealPathDir);  
  15.     if (!logoSaveFile.exists())  
  16.         logoSaveFile.mkdirs();  
  17.     /** 页面控件的文件流* */  
  18.     MultipartFile multipartFile = multipartRequest.getFile("file");  
  19.     /** 获取文件的后缀* */  
  20.     String suffix = multipartFile.getOriginalFilename().substring(  
  21.             multipartFile.getOriginalFilename().lastIndexOf("."));  
  22.     /** 使用UUID生成文件名称* */  
  23.     String logImageName = UUID.randomUUID().toString() + suffix;// 构建文件名称  
  24.     /** 拼成完整的文件保存路径加文件* */  
  25.     String fileName = logoRealPathDir + File.separator + logImageName;  
  26.     File file = new File(fileName);  
  27.     try {  
  28.         multipartFile.transferTo(file);  
  29.     } catch (IllegalStateException e) {  
  30.         e.printStackTrace();  
  31.     } catch (IOException e) {  
  32.         e.printStackTrace();  
  33.     }  
  34.     /** 打印出上传到服务器的文件的绝对路径* */  
  35.     System.out.println("****************"+fileName+"**************");  
  36.     insertDate(fileName);  
  37.     return new ModelAndView("redirect:/business/shops/my.jsp");  
  38. }   

猜你喜欢

转载自blog.csdn.net/qq_36850813/article/details/80697230