title: spring boot uploading permanent files
body: <p>i am trying to upload files using spring boot but each time i restart the server the files i uploaded disappear .
  spring boot creates file with the name <code>upload-dir</code> and each time i restart the server this file being deleted and recreated, so i don't know where to upload and store my files.</p>
  
  <p>my file upload controller code : </p>
  
  <pre><code>package com.theligue.webservice;
  
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.core.io.Resource;
  import org.springframework.http.HttpHeaders;
  import org.springframework.http.ResponseEntity;
  import org.springframework.stereotype.Controller;
  import org.springframework.ui.Model;
  import org.springframework.web.bind.annotation.*;
  import org.springframework.web.multipart.MultipartFile;
  import org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder;
  import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  
  import com.theligue.webservice.storage.StorageFileNotFoundException;
  import com.theligue.webservice.storage.StorageService;
  
  import java.io.IOException;
  import java.util.stream.Collectors;
  
  @Controller
  public class FileUploadController {
  
      private final StorageService storageService;
  
      @Autowired
      public FileUploadController(StorageService storageService) {
          this.storageService = storageService;
      }
  
      @GetMapping("/uploadPOC")
      public String listUploadedFiles(Model model) throws IOException {
          model.addAttribute("files", storageService
                  .loadAll()
                  .map(path -&gt;
                          MvcUriComponentsBuilder
                                  .fromMethodName(FileUploadController.class, "serveFile", path.getFileName().toString())
                                  .build().toString())
                  .collect(Collectors.toList()));
          return "uploadForm";
      }
  
  
  
  
  
      @GetMapping("/files/{filename:.+}")
      @ResponseBody
      public ResponseEntity&lt;Resource&gt; serveFile(@PathVariable String filename) {
          Resource file = storageService.loadAsResource(filename);
          return ResponseEntity
                  .ok()
                  .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\""+file.getFilename()+"\"")
                  .body(file);
      }
  
      @PostMapping("/")
      public String handleFileUpload(@RequestParam("file") MultipartFile file,
                                     RedirectAttributes redirectAttributes) {
          storageService.store(file); 
          redirectAttributes.addFlashAttribute("message",
                  "You successfully uploaded " + file.getOriginalFilename() + "!");
  
          return "redirect:/uploadPOC/";
      }
  
      @ExceptionHandler(StorageFileNotFoundException.class)
      public ResponseEntity handleStorageFileNotFound(StorageFileNotFoundException exc) {
          return ResponseEntity.notFound().build();
      }
  
  }
  </code></pre>