Zapis pliku na serwerze Spring MVC

0

Witajcie.

Mam sobie aplikację w Spring MVC, która między innymi umożliwa dodawanie danych tekstowych do bazy i w teorii powinna także pozwalać an zapisanie pliku na serwerze. Uruchamiam ją na serwerze linuxowym, ubuntu konkretniej, za pomocą tomcata. I mam problem, bo nie wiem w jaki sposób mam zapisać pliki na tym serwerze, w taki sposób aby były zapisane w katalogu innym niż webapps. Po prawdzie w webapps też nie potrafię tego zrobić więc prosze o jakieś małe wskazówki dotyczące zapisywania plików na serwerze.

Z góry dzięki za odpowiedź

1

Proponuje:

  1. Dołączyć do projektu bibliotekę Apache Commons FileUpload oraz Apache Commons IO
  2. Skonfigurować mechanizm przesyłania plików. Jeżeli posiadasz konfigurację opartą o javowe klasy to w odpowiedniej klasie konfiguracji dodaj metodę:
    @Bean(name = "multipartResolver")
    public CommonsMultipartResolver multipartResolver() {
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
        multipartResolver.setResolveLazily(false);
        multipartResolver.setDefaultEncoding("utf-8");
        multipartResolver.setMaxInMemorySize(10240);
        multipartResolver.setMaxUploadSize(-1); // Brak limitow co do wielkosci pliku
        return multipartResolver;
    }

Jeżeli natomiast posiadasz konfigurację opartą o pliki XML to przerób to sobie na kod XML.

Oczywiście możesz skonfigurować wszystko inaczej niż w powyższym kodzie.

  1. Stworz sobie jakiś kontroler a w nim dwie metody:
    @RequestMapping(value = "[jakis adres url]")
    public String uploadFileGet() throws IOException {
        return "[sciezka do widoku formularza przesylania plikow]";
    }

    @RequestMapping(value = "[jakis adres url]", method = RequestMethod.POST)
    public String uploadFilePost(@RequestParam("file") MultipartFile file) throws IOException {
        FileUtils.copyInputStreamToFile(file.getInputStream(), new File("[docelowa sciezka pliku na serwerze]"));
        return "[sciezka do widoku z informacja o poprawnym przeslaniu pliku]";
    }
  1. Stworz odpowiednie widoki - z tym chyba problemu nie bedzie? Nie zapomnij dodac do formularza atrybutu enctype="multipart/form-data". Pamiętaj też, że pole formularza u mnie nazywa się "file".

To oczywiscie taka troche prowizorka - powinienes zadbac o obsluge bledow itp.

1 użytkowników online, w tym zalogowanych: 0, gości: 1