본문 바로가기

학원 일기/학원-Spring

스프링 20210705

스프링을 통한 파일업로드 방법

 

1) commons-io / commons-fileupload 라이브러리 주입

 

2)컨트롤러에 업로드파일을 저장할 폴더의 경로를 String타입 상수에 저장한다

3)list형태로 값을받는 vo와 list를 담는 vo를 생성한다 (필수가아니라 특정요청을 처리하기위해)

 

4)jsp 페이지에서 form태그 작성 

 

<!-- 단일 파일 업로드 -->
<form action="upload_ok" method="post" enctype="multipart/form-data">
파일선택:<input type="file" name="file">
<input type="submit" class="btn btn-default" value="전송"/>
</form>

 

===========================================================

action에는 요청경로 / method는 post사용 enctype="multipart/form-data는 파일을보내기위한 폼속성이다 file이름으로 file을 보낸다

 

컨트롤러는 요청을 맵핑후 MultipartFile타입으로 객체를 전달받아 try catch문을이용해 값을꺼낸다

===========================================================


<!-- 다중 파일 업로드 (multiple) -->
<form action="upload_ok2" method="post" enctype="multipart/form-data">
파일선택:<input type="file" name="file" multiple="multiple">
<input type="submit" class="btn btn-default" value="전송">
</form>

 

==============================================================

multiple="multiple" 이란속성이 input태그에 추가되었다 >> 이는 파일을 여러개보낼수있는 속성이다

컨트롤러는 요청을 맵핑후 MultipartFile타입으로 객체를 전달받아 try catch문을이용해 값을꺼낸다( 반복문응용)

==============================================================

<!-- 다중파일 업로드2 -->
<form action="upload_ok3" method="post" enctype="multipart/form-data">
파일선택:<input type="file" name="file"><br/>
파일선택:<input type="file" name="file"><br/>
파일선택:<input type="file" name="file"><br/>
<input type="submit" class="btn btn-default">
</form>

 

==============================================================

multiple ="multiple"속성 사용없이 input태그의 갯수를 늘려서 한번에 보낼수있다

컨트롤러는 요청을 맵핑후 MultipartFile타입을담는 list 객체를 전달받아 try catch문을이용해 값을꺼낸다(반복문응용)

근데 의문인건 한가지값밖에 선택이안된다

==============================================================

 


<!-- 가변적인 폼 형식의 업로드 -->

<form action="upload_ok4" method="post" enctype="multipart/form-data">
이름:<input type="text" name="list[0].name"><br/>
파일선택:<input type="file" name="list[0].file"><br/>

<input type="submit" class="btn btn-default">

</form>

 

==============================================================

이건좀 많이신기하다.. 

input타입에 list[0].name을 추가했을뿐인데 list의 형식으로 값이 전달된다

컨트롤러는 요청을 맵핑후 MultipleFile타입을 담는 리스트의값이 전달되면

해당 리스트를 담는 vo객체를 file이라는 이름으로 전달된값을 전달받으며 그이후 

file이라는 이름으로 getList() 를이용해 해당값을 받을수있다

 

근데 의문인건 이것도 한가지값밖에 선택이안된다

==============================================================

'학원 일기 > 학원-Spring' 카테고리의 다른 글

스프링0707  (0) 2021.07.07
스프링0706  (0) 2021.07.07
스프링0630  (0) 2021.07.01
06-29 스프링  (0) 2021.06.29
주요 maven repository  (0) 2021.06.29