Where to store uploaded images in Linux server using Spring MVC









up vote
0
down vote

favorite












I have written a code to upload the images(profile picture of an student) in the server running in linux environment.The code is shown below



 @RequestMapping(value = "/updatePhoto",method = RequestMethod.POST)
public String handleFormUpload(@RequestParam("id") String id,
@RequestParam("file") MultipartFile file,
HttpServletRequest request,
Model model) throws IOException
if(!file.isEmpty())

try

String relativePath="/resources";
String absolutePath=request.getServletContext().getRealPath(relativePath);
System.out.print(absolutePath);
byte bytes=file.getBytes();
File dir=new File(absolutePath);
if(!dir.exists())

dir.mkdir();

File uploadFile=new File(dir.getAbsolutePath()+File.separator+id+".jpg");
BufferedOutputStream outputStream=new BufferedOutputStream(new FileOutputStream(uploadFile));
outputStream.write(bytes);
outputStream.close();
model.addAttribute("uploadMessage","image uploaded for id"+id);

catch (Exception e)

System.out.print(e);


return "successFileUpload";




i have stored in "/resources" folder.but the problem is, whenever i generate the war file of whole application and deploy in server, it flushes the "/resources" folder and deletes the old uploaded images.Is there any way or the path ,i could upload the images.










share|improve this question





















  • Store them anywhere you want except where you're currently storing them. I.e. choose a directory which is not deleted every time you deploy the app, and store them there.
    – JB Nizet
    Nov 11 at 20:28














up vote
0
down vote

favorite












I have written a code to upload the images(profile picture of an student) in the server running in linux environment.The code is shown below



 @RequestMapping(value = "/updatePhoto",method = RequestMethod.POST)
public String handleFormUpload(@RequestParam("id") String id,
@RequestParam("file") MultipartFile file,
HttpServletRequest request,
Model model) throws IOException
if(!file.isEmpty())

try

String relativePath="/resources";
String absolutePath=request.getServletContext().getRealPath(relativePath);
System.out.print(absolutePath);
byte bytes=file.getBytes();
File dir=new File(absolutePath);
if(!dir.exists())

dir.mkdir();

File uploadFile=new File(dir.getAbsolutePath()+File.separator+id+".jpg");
BufferedOutputStream outputStream=new BufferedOutputStream(new FileOutputStream(uploadFile));
outputStream.write(bytes);
outputStream.close();
model.addAttribute("uploadMessage","image uploaded for id"+id);

catch (Exception e)

System.out.print(e);


return "successFileUpload";




i have stored in "/resources" folder.but the problem is, whenever i generate the war file of whole application and deploy in server, it flushes the "/resources" folder and deletes the old uploaded images.Is there any way or the path ,i could upload the images.










share|improve this question





















  • Store them anywhere you want except where you're currently storing them. I.e. choose a directory which is not deleted every time you deploy the app, and store them there.
    – JB Nizet
    Nov 11 at 20:28












up vote
0
down vote

favorite









up vote
0
down vote

favorite











I have written a code to upload the images(profile picture of an student) in the server running in linux environment.The code is shown below



 @RequestMapping(value = "/updatePhoto",method = RequestMethod.POST)
public String handleFormUpload(@RequestParam("id") String id,
@RequestParam("file") MultipartFile file,
HttpServletRequest request,
Model model) throws IOException
if(!file.isEmpty())

try

String relativePath="/resources";
String absolutePath=request.getServletContext().getRealPath(relativePath);
System.out.print(absolutePath);
byte bytes=file.getBytes();
File dir=new File(absolutePath);
if(!dir.exists())

dir.mkdir();

File uploadFile=new File(dir.getAbsolutePath()+File.separator+id+".jpg");
BufferedOutputStream outputStream=new BufferedOutputStream(new FileOutputStream(uploadFile));
outputStream.write(bytes);
outputStream.close();
model.addAttribute("uploadMessage","image uploaded for id"+id);

catch (Exception e)

System.out.print(e);


return "successFileUpload";




i have stored in "/resources" folder.but the problem is, whenever i generate the war file of whole application and deploy in server, it flushes the "/resources" folder and deletes the old uploaded images.Is there any way or the path ,i could upload the images.










share|improve this question













I have written a code to upload the images(profile picture of an student) in the server running in linux environment.The code is shown below



 @RequestMapping(value = "/updatePhoto",method = RequestMethod.POST)
public String handleFormUpload(@RequestParam("id") String id,
@RequestParam("file") MultipartFile file,
HttpServletRequest request,
Model model) throws IOException
if(!file.isEmpty())

try

String relativePath="/resources";
String absolutePath=request.getServletContext().getRealPath(relativePath);
System.out.print(absolutePath);
byte bytes=file.getBytes();
File dir=new File(absolutePath);
if(!dir.exists())

dir.mkdir();

File uploadFile=new File(dir.getAbsolutePath()+File.separator+id+".jpg");
BufferedOutputStream outputStream=new BufferedOutputStream(new FileOutputStream(uploadFile));
outputStream.write(bytes);
outputStream.close();
model.addAttribute("uploadMessage","image uploaded for id"+id);

catch (Exception e)

System.out.print(e);


return "successFileUpload";




i have stored in "/resources" folder.but the problem is, whenever i generate the war file of whole application and deploy in server, it flushes the "/resources" folder and deletes the old uploaded images.Is there any way or the path ,i could upload the images.







spring-mvc file-upload multifile-uploader






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 11 at 20:21









Arul Suju

818




818











  • Store them anywhere you want except where you're currently storing them. I.e. choose a directory which is not deleted every time you deploy the app, and store them there.
    – JB Nizet
    Nov 11 at 20:28
















  • Store them anywhere you want except where you're currently storing them. I.e. choose a directory which is not deleted every time you deploy the app, and store them there.
    – JB Nizet
    Nov 11 at 20:28















Store them anywhere you want except where you're currently storing them. I.e. choose a directory which is not deleted every time you deploy the app, and store them there.
– JB Nizet
Nov 11 at 20:28




Store them anywhere you want except where you're currently storing them. I.e. choose a directory which is not deleted every time you deploy the app, and store them there.
– JB Nizet
Nov 11 at 20:28












2 Answers
2






active

oldest

votes

















up vote
1
down vote



accepted










The way I do is:



  • Create a directory in the server. For example: /myImages

  • Then grant full permissions for tomcat user

You are good to go now. I have read somewhere that you shouldn't save your stuff on /resources folder because it makes your app independent from container you are using: with tomcat you could use catalina.home but what if you shift to another container






share|improve this answer





























    up vote
    1
    down vote













    I store the images inside my Tomcat home location as it will be outside of my project folder(war) and inside the tomcat.



    String rootPath = System.getProperty("catalina.home");
    File dir = new File(rootPath + File.separator + "images");


    The above lines of code will create a folder in tomcat base directory with name 'images'.



    This is the one of the best ways to store images.






    share|improve this answer




















      Your Answer






      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "1"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53252864%2fwhere-to-store-uploaded-images-in-linux-server-using-spring-mvc%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      1
      down vote



      accepted










      The way I do is:



      • Create a directory in the server. For example: /myImages

      • Then grant full permissions for tomcat user

      You are good to go now. I have read somewhere that you shouldn't save your stuff on /resources folder because it makes your app independent from container you are using: with tomcat you could use catalina.home but what if you shift to another container






      share|improve this answer


























        up vote
        1
        down vote



        accepted










        The way I do is:



        • Create a directory in the server. For example: /myImages

        • Then grant full permissions for tomcat user

        You are good to go now. I have read somewhere that you shouldn't save your stuff on /resources folder because it makes your app independent from container you are using: with tomcat you could use catalina.home but what if you shift to another container






        share|improve this answer
























          up vote
          1
          down vote



          accepted







          up vote
          1
          down vote



          accepted






          The way I do is:



          • Create a directory in the server. For example: /myImages

          • Then grant full permissions for tomcat user

          You are good to go now. I have read somewhere that you shouldn't save your stuff on /resources folder because it makes your app independent from container you are using: with tomcat you could use catalina.home but what if you shift to another container






          share|improve this answer














          The way I do is:



          • Create a directory in the server. For example: /myImages

          • Then grant full permissions for tomcat user

          You are good to go now. I have read somewhere that you shouldn't save your stuff on /resources folder because it makes your app independent from container you are using: with tomcat you could use catalina.home but what if you shift to another container







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 12 at 7:10

























          answered Nov 12 at 7:03









          nguyentaijs

          908




          908






















              up vote
              1
              down vote













              I store the images inside my Tomcat home location as it will be outside of my project folder(war) and inside the tomcat.



              String rootPath = System.getProperty("catalina.home");
              File dir = new File(rootPath + File.separator + "images");


              The above lines of code will create a folder in tomcat base directory with name 'images'.



              This is the one of the best ways to store images.






              share|improve this answer
























                up vote
                1
                down vote













                I store the images inside my Tomcat home location as it will be outside of my project folder(war) and inside the tomcat.



                String rootPath = System.getProperty("catalina.home");
                File dir = new File(rootPath + File.separator + "images");


                The above lines of code will create a folder in tomcat base directory with name 'images'.



                This is the one of the best ways to store images.






                share|improve this answer






















                  up vote
                  1
                  down vote










                  up vote
                  1
                  down vote









                  I store the images inside my Tomcat home location as it will be outside of my project folder(war) and inside the tomcat.



                  String rootPath = System.getProperty("catalina.home");
                  File dir = new File(rootPath + File.separator + "images");


                  The above lines of code will create a folder in tomcat base directory with name 'images'.



                  This is the one of the best ways to store images.






                  share|improve this answer












                  I store the images inside my Tomcat home location as it will be outside of my project folder(war) and inside the tomcat.



                  String rootPath = System.getProperty("catalina.home");
                  File dir = new File(rootPath + File.separator + "images");


                  The above lines of code will create a folder in tomcat base directory with name 'images'.



                  This is the one of the best ways to store images.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 12 at 5:09









                  Alien

                  4,48521024




                  4,48521024



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.





                      Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                      Please pay close attention to the following guidance:


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53252864%2fwhere-to-store-uploaded-images-in-linux-server-using-spring-mvc%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Top Tejano songwriter Luis Silva dead of heart attack at 64

                      ReactJS Fetched API data displays live - need Data displayed static

                      政党