티스토리 뷰

스프링에서 파일업로드 처리를 위한 설정은 아래와 같다.

우선 내 개발환경은..

* spring : 3.1

* maven : 2.2


0. 파일업로드는 아파치의 common.fileupload 를 사용한다. servlet3.0에서도 사용할 수 있으나, 현재 alpha 버전이어서 일단, common.fileupload(1.2.2)를 사용하기로 한다.

메이븐을 사용한다면, pom.xml에 아래 코드를 추가한다.


1. multipart 부분을 처리하기 위한 bean 추가!!

servlet-context.xml 에 아래 bean을 추가.


2. Controller에 아래 메소드 추가.


3. 파일업로드 하는 jsp 또는 html 파일 추가.


4. 업로드 해 보면 톰캣 콘솔화면에 아래와 같은 내용이 나온다.

(ScreenHunter_86 Sep. 04 18.44.jpg 파일을 업로드 해 봄.)


@@@@@@@@@@@@ FileUpload Test Controller...

name : 

file : file

file getOriginalFilename : ScreenHunter_86 Sep. 04 18.44.jpg

file size : 29971

file getContentType : image/jpeg

file toString : org.springframework.web.multipart.commons.CommonsMultipartFile@5b1da4c7

file is not empty.

file size : 29971


** 위에서 MultipartResolver 추가시 파일용량은 100,000bytes 로 제한을 두었는데.. 만약 그 이상 크기의 파일을 업로드 하면 아래와 같이 CommonsMultipartResolver 에서 예외(MaxUploadSizeExceededException)가 발생하여 브라우저에 500에러가 그대로 보이게 된다. 이를 위해 예외처리를 하는 방법은 아래와 같다.

1. servlet-context.xml에 예외처리를 위한 bean을 추가한다.


위의 설정에서 보듯이 MaxUploadSizeExceededException 예외발생시 error_fileupload 로 지정한 페이지로 이동하라는 것인데, 여기서 error_fileupload 는 servlet-context.xml에서 "viewResolver" 설정에서 prefix와 suffix를 제외한 값을 얘기한다.


정리차원에서 끄적끄적~ :)

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
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
글 보관함