Serwer Tomcat usuwa folder podczas kompilacji programu

0

Do określenia miejsca zauploadowania pliku używam poleceń

String uploadUrl = request.getServletContext().getRealPath("/avatar/");
String filePath = uploadUrl + File.separator + avatar.getOriginalFilename();
File dest = new File(filePath);
avatar.transferTo(dest);

ustawia mi to ścieżkę
@D:\apache-tomcat-8.5.12\webapps\ROOT\avatar\Lighthouse.jpg

Tworzę sobie folder 'avatar', aby umieszczać tam avatary, ale problem polega na tym, że podczas kompilacji programu ten folder ZNIKA. Tak. Kompiluję program i w pewnym momencie folder się usuwa z serwera.

Tu on jest umieszczony.
https://zapodaj.net/02080c2c0f844.png.html
https://zapodaj.net/58acc1c0bb990.png.html

Ale po każdej kompilacji znika. To bez sensu i nie wiem co robić.

0

To jest normalne. Spróbuj wrzucić to poza ROOT lub webapps (albo w ogole folder tomcata).
Nie jestem ekspertem w tej sprawie, ale miałem podobny problem
Dobranoc

0

Wyciągnij tę ścieżkę do konfiguracji, na przykład ustawianej jako atrybut kontekstu serwletów w web.xml, albo jako zmienna w innym pliku konfiguracyjnym. Ścieżka ta nie powinna być poza kontenerem serwletów. Pamiętaj, żeby się upewnić, że użytkownik, który uruchamia kontener ma uprawnienia do odczytu/zapisu w tej ścieżce.

W praktyce takie fotki ludzie wrzucają na AWSa czy jako BLOB do bazy (bleeeee).

0

Nic nie chce działać. Przykładowy adres do pliku wygląda tak

C:/Users/Jonatan/avatar/Koala.jpg

a po uruchomieniu mimo, że w źródle strony jest adres tego pliku, to w ogóle nie chce go wyświetlić.
Dodałem ścieżkę w konfiguracji

     registry
                .addResourceHandler("/avatar/**")
                .addResourceLocations("file:///" + System.getProperty("user.home").replace("\\", "/") + "/avatar/");

bo w obecnej chwili chcę trzymać avatary w folderze, który znajduje się w katalogu domowym, a mimo to aplikacja nie reaguje na ten adres.

EDIT:
Znalazłem w dokumentacji http://www.baeldung.com/spring-mvc-static-resources, że trzeba zarejestrować ścieżkę dokładnie tak jak zrobiłem, a podczas wyświetlania używać tylko

avatar/NazwaAvatara.jpg
<img id="avatar" th:src="@{${session.user.getUrlAvatar()}}"> // avatar/Koala.jpg

ale i tak nie działa, Szkoda gadać.

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