简体   繁体   中英

How to upload a file to a specific folder in struts 2

I want to upload a file from a struts action. I need in that action the path for my folder:

I tried using

String contextPath = request.getContextPath();

but I'm getting java.lang.NullPointerException

Either store in Catalina which is parent folder to your project folder

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

Or make a folder in your project and store there.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM