Содержание
Это еще один полный учебник Spring MVC, который принимает файл в форме загрузки и копирует его в определенную папку при событии «Отправить». Как обычно у нас есть dependency Пример Hello World Spring MVC.
Итак, вот дополнения / изменения, которые мы должны выполнить в этом примере:
- Новый файл: CrunchifyFileUploadController.java
- Новый файл: CrunchifyFileUpload.java
- Новый файл: uploadfile.jsp
- Новый файл: uploadfilesuccess.jsp
- Измененный файл: crunchify-servlet.xml
- 2 новых файла jar:
commons-io-2.4.jarа такжеcommons-fileupload-1.3.jar
Есть ли у вас вопрос ниже? Тогда вы находитесь в правильном месте.
- Пример загрузки нескольких файлов Java
- Загрузить несколько файлов или папок
Вот окончательная структура проекта, поэтому вы получите представление о том, куда добавлять файлы.
Теперь давайте начнем:
Шаг 1) Предварительные условия:
https://crunchify.com/hello-world-example-spring-mvc-3-2-1/ (успешно разверните этот проект на Tomcat )
Зависимости Maven:
Добавьте ниже новые зависимости к вашему проекту pom.xml файл.
|
1
2
3
4
5
6
7
8
9
10
|
< зависимость >
< groupId > commons — fileupload < / groupId >
< artifactId > commons — fileupload < / artifactId >
< версия > 1.2 < / версия >
< / зависимость >
< зависимость >
< groupId > commons — io < / groupId >
< artifactId > commons — io < / artifactId >
< версия > 1.4 < / версия >
< / зависимость >
|
Шаг-2) SpringController
Создайте контроллер на основе Spring 3 MVC, который обрабатывает загрузку файлов. В этом контроллере есть два метода:
crunchifyDisplayForm— Он просто перенаправляет запрос на страницу uploadfile.jspcrunchifySave— получает форму, используя@ModelAttributeаннотации и получить содержимое файла из него. Он создает список имен файлов загружаемых файлов и передает этот список на страницу успеха.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
пакет ком . crunchify. контроллер ;
Импортировать ком . crunchify. форма . CrunchifyFileUpload ;
Импортировать Java. Ио. Файл ;
Импортировать Java. Ио. IOException ;
Импортировать Java. Util. ArrayList ;
Импортировать Java. Util. Список ;
Импортировать орг. пружинная рама . стереотип . Контроллер ;
Импортировать орг. пружинная рама . щ. Модель ;
Импортировать орг. пружинная рама . веб . привязывать. аннотация . ModelAttribute ;
Импортировать орг. пружинная рама . веб . привязывать. аннотация . RequestMapping ;
Импортировать орг. пружинная рама . веб . привязывать. аннотация . RequestMethod ;
Импортировать орг. пружинная рама . веб . многочастный. MultipartFile ;
@Controller
общественности учебный класс CrunchifyFileUploadController {
@RequestMapping ( значение знак равно / загрузить , метод знак равно RequestMethod . ПОЛУЧИТЬ )
общественности строка crunchifyDisplayForm ( ) {
вернуть uploadfile ;
}
@RequestMapping ( значение знак равно / savefiles , метод знак равно RequestMethod . ПОСТ )
общественности строка crunchifySave (
@ModelAttribute ( uploadForm ) CrunchifyFileUpload uploadForm ,
Модель карты ) бросает IllegalStateException , IOException {
строка saveDirectory знак равно c: / crunchify / ;
List
Список
если ( ноль ! знак равно crunchifyFiles && crunchifyFiles.size ()> 0) {
for (MultipartFile multipartFile: crunchifyFiles) {
String fileName = multipartFile.getOriginalFilename ();
если ( ! . equalsIgnoreCase ( fileName ) ) {
// Обработка содержимого файла — multipartFile.getInputStream ()
multipartFile
, TransferTo ( новый Файл ( saveDirectory + fileName ) ) ;
fileNames . добавить ( fileName ) ;
}
}
}
карта. addAttribute ( файлы , fileNames ) ;
вернуть uploadfilesuccess ;
}
}
|
Шаг-3) Модель — Форма объекта
Создайте Java-бин, который действует как объект Model / Form для нашего приложения Spring. Этот боб содержит List из org.springframework.web.multipart.MultipartFile объекты. Spring Framework предоставляет полезный класс MultipartFile, который можно использовать для извлечения содержимого загруженного файла. Помимо содержимого, объект MultipartFile также предоставляет другую полезную информацию, такую как имя файла, размер файла и т. Д.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
пакет ком . crunchify. форма ;
Импортировать Java. Util. Список ;
Импортировать орг. пружинная рама . веб . многочастный. MultipartFile ;
общественности учебный класс CrunchifyFileUpload {
частный List
общественности List
вернуть crunchifyFiles ;
}
общественности недействительным setFiles ( List
это. crunchifyFiles знак равно файлы ;
}
}
|
Шаг 4) JSP Просмотров
Теперь создайте просмотр страниц для этого приложения. Нам понадобятся две JSP, одна для отображения формы загрузки файла, а другая для отображения результата при успешной загрузке.
uploadfile.jsp отображает форму с вводом файла. Кроме того, мы добавили небольшой фрагмент кода jquery по нажатию кнопки «Добавить». Это добавит новый компонент ввода файла в конце формы. Это позволяет пользователю загружать столько файлов, сколько они хотят.
Обратите внимание, что мы установили enctype=”multipart/form-data” атрибут нашего

