Домой Учебники по Java и J2EE Как загрузить несколько файлов в определенное место, используя Spring MVC? Полное руководство...

Как загрузить несколько файлов в определенное место, используя Spring MVC? Полное руководство с кодом Java

786
0

Это еще один полный учебник 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 файл.

Добавить belwo в файл pom.xml

1
2
3
4
5
6
7
8
9
10
< зависимость >
< groupId > commonsfileupload < / groupId >
< artifactId > commonsfileupload < / artifactId >
< версия > 1.2 < / версия >
< / зависимость >
< зависимость >
< groupId > commonsio < / groupId >
< artifactId > commonsio < / artifactId >
< версия > 1.4 < / версия >
< / зависимость >

Шаг-2) SpringController

Создайте контроллер на основе Spring 3 MVC, который обрабатывает загрузку файлов. В этом контроллере есть два метода:

  1. crunchifyDisplayForm — Он просто перенаправляет запрос на страницу uploadfile.jsp
  2. crunchifySave — получает форму, используя @ModelAttribute аннотации и получить содержимое файла из него. Он создает список имен файлов загружаемых файлов и передает этот список на страницу успеха.
CrunchifyFileUploadController.java

Джава
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 знак равно uploadForm . getFiles ( ) ;
         Список FileNames знак равно новый ArrayList ( ) ;
         если ( ноль ! знак равно 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 также предоставляет другую полезную информацию, такую как имя файла, размер файла и т. Д.

CrunchifyFileUpload.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
пакет ком . crunchify. форма ;
Импортировать Java. Util. Список ;
Импортировать орг. пружинная рама . веб . многочастный. MultipartFile ;
общественности учебный класс CrunchifyFileUpload {
     частный List crunchifyFiles ;
     общественности List getFiles ( ) {
         вернуть crunchifyFiles ;
     }
     общественности недействительным setFiles ( List файлы ) {
         это. crunchifyFiles знак равно файлы ;
     }
}

Шаг 4) JSP Просмотров

Теперь создайте просмотр страниц для этого приложения. Нам понадобятся две JSP, одна для отображения формы загрузки файла, а другая для отображения результата при успешной загрузке.

uploadfile.jsp отображает форму с вводом файла. Кроме того, мы добавили небольшой фрагмент кода jquery по нажатию кнопки «Добавить». Это добавит новый компонент ввода файла в конце формы. Это позволяет пользователю загружать столько файлов, сколько они хотят.

Обратите внимание, что мы установили enctype=”multipart/form-data” атрибут нашего

тег.

uploadfile.jsp

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
52
53
54
55
56
57
58
59
60
61
<% @ taglib uri = http://www.springframework.org/tags/form prefix = form %>
< html >
< голова >
< title > Хруст весна MVC Загрузить множественный файлы Пример < / title >
<сценарий
     src = http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js >
<скрипт>
     $ ( документ )
             , готов (
                     функция ( ) {
                         // добавляем больше компонентов файла, если нажать кнопку Добавить
                         $ ( '#addFile' )
                                 , нажмите (
                                         функция ( ) {
                                             вар ИндексФайлаИзм знак равно $ ( '#fileTable tr' )
                                                     , дети ( ) . длина 1 ;
                                             $ ( '#fileTable' )
                                                     , добавить (
                                                            
'
                                                                     + ' + ИндексФайлаИзм + '] />'
                                                                     + ' ' ) ;
                                         } ) ;
                     } ) ;
type = text / css>
тело {
     фоновое изображение :
         url ( 'https://cdn.crunchify.com/wp-content/uploads/2013/03/Crunchify.bg_.300.png' ) ;
}
< / head >
< тело >
     <Бр>
     <Бр>
     < div align = center >
         < h1 > Хруст Пример загрузки нескольких файлов Spring MVC < / h1 >
         < form : form method = post action = savefiles.html
             modelAttribute = uploadForm enctype = multipart / form-data >
             < p > Выберите файлы для загрузить . Нажмите кнопку Добавить , чтобы добавить больше файлов
                 входы . < / p >
             < table id = fileTable >
                 < tr >
                     < td > < input name = files [0] type = file / > < / td >
                 < / tr >
                 < tr >
                     < td > < input name = files [1] type = file / > < / td >
                 < / tr >
             < / table >
             < br / >
             < input type = submit значение = Загрузить / >
             < input id = addFile type = button value = Добавить файл / >
         < / form : form >
         < br / >
     < / div >
< / body >
< / html >
uploadfilesuccess.jsp

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
<% @ taglib uri = http://java.sun.com/jsp/jstl/core prefix = c %>
< html >
< голова >
< title > Хруст Загрузить множественный файлы Пример < / title >
type = text / css>
тело {
     фоновое изображение :
         url ( 'https://cdn.crunchify.com/wp-content/uploads/2013/03/Crunchify.bg_.300.png' ) ;
}
< / head >
< тело >
     <Бр>
     <Бр>
     < div align = center >
         < h1 > Хруст Пример загрузки нескольких файлов Spring MVC < / h1 >
         < p > Отлично . , Следующие файлы успешно загружены. < / p >
         < ol >
             < c : forEach items = $ {files} var = file >
           $ { file } <Бр>
             < / c : forEach >
         < / ol >
         < а href = http: // localhost: 8080 / CrunchifySpringMVC3.2.1 / upload.html > < input
             type = button значение = Вернуться / > < / a > < br / >
         < br / >
         < br / >
         < div
             style = font-family: verdana; line-height: 25px; отступы: 5px 10px; border-radius: 10px; border: 1px пунктирная # A4A4A4; ширина: 50%; размер шрифта: 12px; >
             Spring MVC загрузки нескольких файлов Пример по < а
                 href = 'https://crunchify.com' > Crunchify < / a > . Нажмите < а
                 href = 'https://crunchify.com/category/java-tutorials/' > здесь < / a >
             за вся Java , Spring MVC , Примеры веб- разработки . <Бр>
         < / div >
     < / div >
< / body >
< / html >

Шаг 5) Обновление конфигурации Spring

Добавьте боб ниже crunchify-servlet.xml файл, чуть выше линия.

1
2
< bean id = multipartResolver
         class = org.springframework.web.multipart.commons.CommonsMultipartResolver / >

Шаг 6) Результат проверки

Запустите tomcat и укажите свой браузер на этот URL: http: // localhost: 8080 / CrunchifySpringMVC3.2.1 / upload.html, и вы должны увидеть экран, подобный этому.

После загрузки файла вы увидите сообщение об успешном завершении. Вы всегда можете украсить свой файл .jsp так, как хотите.

Список всех примеров Spring MVC, примеров Java .

Как загрузить несколько файлов в определенное место, используя Spring MVC? Полное руководство с кодом Java

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Какая разница между броском против бросает в Java

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь