2016-06-08 181 views
1

我使用Spring框架的MultipartFile以允许用户上传PDF文件,然后我想存储在目录中的文件:文件上传并保存到目录

为此,我使用的方法tranferTo()但它仍然不起作用!

@RequestMapping(method = RequestMethod.POST, value = "/upload") 
    public CV handleFileUpload(@RequestParam("file") MultipartFile file) 
      throws IOException, SAXException, TikaException { 

    File convFile = new File(file.getOriginalFilename()); 
     System.out.println(file.getOriginalFilename()); 
      file.transferTo(convFile); 
} 

如何添加目标路径?

回答

2

存放在卡塔利娜这是父文件夹到项目文件夹

String rootPath = System.getProperty("catalina.home"); 
      File dir = new File(rootPath + File.separator + "yourfolderName"); 
      if (!dir.exists()) 
       dir.mkdirs(); 

      // Create the file on server 
      java.util.Date date= new java.util.Date(); 
      String Path = dir.getAbsolutePath() + File.separator + (new Timestamp(date.getTime())).toString().replace(":", "").toString().replace(".", ".").toString().replace(" ","").toString().replace("-","").toString()+".pdf"; 

或存储在特定的文件夹中的项目,如文件夹

@RequestMapping(value="/user/uploadFile", method=RequestMethod.POST) 
public ModelAndView handleFileUpload(ModelMap model,@RequestParam(value="file", required = false) MultipartFile file,HttpServletRequest request){ 

    if (!file.isEmpty()) { 
     //filter for checking file extewnsion 
     if(file.getContentType().equalsIgnoreCase("image/jpg") || file.getContentType().equalsIgnoreCase("image/jpeg")){ 
      //if file is >2 MB or < 2MB 
      double size = file.getSize(); 
      double kilobytes = (size/1024); 
      double megabytes = (kilobytes/1024); 
      if(megabytes<2){ 
     try { 
      byte[] bytes = file.getBytes(); 
      String filePath = request.getRealPath("/")+"yourFolderName\\ProfileImages\\"+SessionManagement.getUserName()+".jpg"; 
      BufferedOutputStream stream = 
        new BufferedOutputStream(new FileOutputStream(new File(filePath))); 
      stream.write(bytes); 
      stream.close(); 

      //console call 
     } 
     else{ 
      model.put("error", "Please select File less than 2 MB"); 
      return new ModelAndView("uploadPhotoTile"); 
     } 
     }else{ 
      model.put("error", "Please select JPEG File"); 
      return new ModelAndView("uploadPhotoTile"); 
     } 
    } else { 
     model.put("error", "Please select File"); 
     return new ModelAndView("uploadPhotoTile"); 
    } 
}