• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Spring Boot - upload and display img

VPS Starter Arubacloud
0 głosów
353 wizyt
pytanie zadane 28 sierpnia 2020 w Java przez nieznajomy121 Nowicjusz (200 p.)


Mój kontroler
 

@Controller
public class UploadFileController {
    public static String uploadDirectory = System.getProperty("user.dir") + "/uploads";

    @RequestMapping("/")
    public String uploadPage(Model model) {
        return "uploadview";
    }

    @RequestMapping("/upload")
    public String upload(Model model, @RequestParam("files")MultipartFile[] files) {
        StringBuilder fileNames = new StringBuilder();

        for(MultipartFile file : files) {
            Path fileNameAndPath = Paths.get(uploadDirectory, file.getOriginalFilename());
            fileNames.append(file.getOriginalFilename());
            try {
                Files.write(fileNameAndPath, file.getBytes());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        model.addAttribute("msg", "Udalo sie wrzucic pliki" + fileNames.toString());
        return "uploadstatusview";
    }
}

Witam, mam mały problem, z którym się męczę od jakiegoś czasu.
Mianowicie prosta web apka. Spring-boot plus thymeleaf, bez bazy danych.
Wrzucam zdjęcie , które się zapisuje w katalogu projektu w folderze uploads i to ładnie działa, ale teraz chciał bym to zdjęcie wrzucić na strone. Moje pytanie brzmi jak mniej więcej się za to zabrać? Stworzyć metodę z @PostMapping, która wysyła dany plik plus do tego jakiś tag z thymeleaf'a czy można to zrobić bezpośrednio przy wrzucaniu? 
Prosił bym ewentualnie o linki do dokumentacji czy coś takiego, z góry dzięki za odpowiedź.

2 odpowiedzi

0 głosów
odpowiedź 29 sierpnia 2020 przez Wiciorny Ekspert (277,460 p.)

Ja bym do tego tak podszedł. Masz lokalnie jakiś img, więc z tego względu możesz wywołać to na bazie akcji ...

czyli generalnie rzecz biorąc TYMINAEK pozwala za pomocą swojego tagu wyświetlić dany obrazek 
 

<img th:src="@{/images/test.png}"/>

więc z durigej strony...  chcesz urzyć do tego restowej metody, to albo wywołać wtedy tymianek po "tym mapowaniu, po wykonaniu tej metody", ale spróbować przekazać do body z tej metody taki fragment. 
https://www.thymeleaf.org/doc/articles/standardurlsyntax.html

0 głosów
odpowiedź 29 sierpnia 2020 przez mbabane Szeryf (79,300 p.)

czy można to zrobić bezpośrednio przy wrzucaniu?

Tak, wtedy return metody, którą zaprezentowałeś będzie posiadł nazwę template gdzie zostanie użyty odpowiedni tag.

W sumie masz tam:

 model.addAttribute("msg", "Udalo sie wrzucic pliki" + fileNames.toString());

więc może wstaw odpowiedni tag thymelaf (nawet tak roboczo, żeby przekonać się, że to działa)  do uploadstatusview.

Podobne pytania

0 głosów
1 odpowiedź 377 wizyt
0 głosów
2 odpowiedzi 388 wizyt
pytanie zadane 15 stycznia 2017 w Java przez Ola Kalisz Początkujący (320 p.)
0 głosów
0 odpowiedzi 339 wizyt
pytanie zadane 2 września 2022 w Java przez michal23 Nowicjusz (160 p.)

92,980 zapytań

141,943 odpowiedzi

321,189 komentarzy

62,307 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...