Proponuje:
- Dołączyć do projektu bibliotekę Apache Commons FileUpload oraz Apache Commons IO
- 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.
- 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]";
}
- 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.