메이븐에 파일관련 라이브러리를 추가하여 진행해야 하므로
pom.xml에 dependency를 등록 하도록 하겠습니다.
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency>
등록하였으면 컨트롤러에 2개의 맵핑을 선언합니다.
/** * 파일등록화면 * @return */ @RequestMapping("/form") public String form(){ return "form"; } /** * form submit 파일결과 받기 * @param file */ @RequestMapping("/getFile") public void getFile(FileVo file){ System.out.println(file.getFile().getOriginalFilename()); }
첨부파일을 서버에서 받기위하여 vo클래스를 하나 생성 해보겠습니다.
패키지명 : com.spring.study.vo
vo 클래스명 : FileVo
package com.spring.study.vo; import org.springframework.web.multipart.MultipartFile; public class FileVo { private MultipartFile file; public MultipartFile getFile() { return file; } public void setFile(MultipartFile file) { this.file = file; } }
등록폼을 위한 form.jsp 파일을 view 디렉토리내에 생성 하여
body태그에 간단하게 다음코드를 추가합니다.
<form action="/getFile" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> <input type="submit" value="서버전달"/> </form>
서버를 시작하여 form URL 호출을 해보겠습니다.
파일 첨부 후 "서버전달" 버튼 클릭을 하게 되면
위 오류메시지가 발생하게 됩니다.
스프링에서 파일처리를 위해서는
MultipartResolver 설정을 잡아주어야 하는데
해당 설정부분이 빠져있어서 파일처리도중 Exception 발생이 일어난겁니다.
mvc-config.xml 파일내에 다음 코드를 추가해주도록 합니다.
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
위 코드를 추가하신다음 다시한번 파일첨부후 실행을 해보도록 합니다.
첨부후 "서버전달"버튼 클릭을 하면
이번에는 500에러가 아닌 404 에러가 나타난다면
정상적으로 파일전송이 완료된겁니다.
이클립스의 콘솔을 확인해보시면 System.out.println을 이용하여
전송한 첨부파일의 파일명이 출력된 것을 확인할 수 있습니다.
by 개발로짜
Spring3 Pathvariable 어노테이션을 이용하여 PARAMETER를 URL처럼 받아보기 (0) | 2014.11.11 |
---|---|
Spring3 jackson JSON 라이브러리 + ResponseBody 이용하여 JSON 파싱하기 (0) | 2014.11.10 |
Spring3 RESTFUL 방식 리소스파일 및 favicon 인식할수 있게 설정하기 (3) | 2014.11.07 |
Spring3 한글깨짐 방지를 위한 UTF-8 인코딩 설정하기 (6) | 2014.11.06 |
STS 이클립스를 이용하여 UTF-8 인코딩 설정 및 Spring3 MVC 연동해보기 (3) | 2014.11.06 |