Inspiracja , wiedza , realizacja
Jsystems

W przebudowie

Login



Java

Oracle

Linux

Android

PostgreSQL

Microsoft SQL Server

Upload plików

Data dodania: Jun 27, 2016
Data aktualizacji: Jun 27, 2016

Kod źródłowy aplikacji którą tworzę w niniejszym kursie jest do pobrania z adresu:

http://www.jsystems.pl/storage/spring/springform3.zip


Dodanie możliwości uploadu plików jest nieco bardziej złożona. Zacznijmy od dodania dwóch niezbędnych bibliotek:





Commons-IO i commons-fileupload. Obie znajdują się w katalog libs projektu przykładowego do tego rozdziału. Skoro już jesteśmy przy rzeczach przyziemnych to od razu dodajmy do naszego pliku ***-servlet.xml beana o ID "multipartResolver" w którego parametrze p:maxUploadSize zdeklarujemymaksymalną wielkość wrzucanego pliku w bajtach. Spring będzie wymagał konfiguracji tego beana, więc nie możemy tego etapu pominąć.




Przejdźmy teraz do przeróbki samego formularza:




Zaczniemy od dodania parametru enctype="multipart/form-data" do forma. Umożliwia on przesyłanie plików (patrz linia 11). Spójrz teraz na linię 14. Tutaj bardzo istotny drobiazg: mamy tutaj input a nie form:input. To nie jest pole klasy Samochod! Będziemy wrzucany obrazek przetwarzać jako osobny parametr wywołania. Przejdźmy teraz do kontrolera obsługującego formularz.




Doszedł nam nowy parametr do metody postThis. Chodzi o parametr "fotka". Zauważ że nie jest on przekazywany przez model, tylko jako osobny parametr.

Element z linii 44-46 to tylko bajer, weryfikuje czy obrazek jest obrazkiem. Możesz tutaj rzucić jakimś wyjątkiem gdyby okazał się nim nie być. Linie 47-50 to zapisanie pliku na dysku.


Przetestujmy :)



Po zatwierdzeniu formularza plik pojawił się we wskazanym miejscu: