이번 포스팅에서는 웹소스에서 서버로 파일 전송을 위한 작업을 진행하기로 하겠음.
우선 파일업로드에 필요한 jar라이브러리를 추가하도록 하자
일반 웹프로젝트의경우 lib 폴더에 라이브러리를 추가하면 되지만 메이븐을 이용할 경우 pom.xml 파일에 dependency태그를 추가해주면 된다.
pom.xm의 dependencies 태그내에 다음 태그를 추가해주도록 하자
<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>
이어서 WEB-INF -> mvc-config.xml 파일내에 다음과 같은 빈을 등록해주도록 하자
파일처리에 필요한 xml 설정이다.
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
이제 파일처리에 대한 준비과정은 끝이 났다.
이제 HelloWorld 클래스에 컨트롤러 맵핑을 해주도록 하자
@RequestMapping("/formFile") public String formFile(){ return "formFile"; }
이어서 return 페이지인 formFile.jsp 파일을 view 디렉토리내에 생성을 한후 다음코드를 body
태그내에 추가하도록 하자. 파일처리를 위해 form 태그내에 enctype을 추가해준다.
<form action="/requestFile" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> <input type="submit" value="서버전달"/> </form>
기존에 작성되어있는 RequestModel 모델클래스에 MultipartFile 타입의 변수와
getter/setter을 정의해주자
private MultipartFile file; public MultipartFile getFile() { return file; } public void setFile(MultipartFile file) { this.file = file; }
마지막으로 HelloWorld 컨트롤러에 파일정보를 받기위한 컨트롤러 맵핑을 추가해주자
@RequestMapping("/requestFile") public void requestFile(RequestModel model){ System.out.println("파일명:"+model.getFile().getOriginalFilename()); System.out.println("파일사이즈:"+model.getFile().getSize()); }
만약 console에 오류가 발생한다면 pom.xml -> Run As -> Maven Install 실행한번 해주도록
합시다.
자, 이제 url 호출 후, 파일첨부 후 콘솔로 파일정보를 확인해보도록 하겠다.
파일태그 폼화면
파일정보
도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!
스프링3(Spring3)MVC 연동 (3) - 서버값 웹페이지로 전송하기 (0) | 2014.07.22 |
---|---|
스프링3(Spring3) MVC 연동 (2) - 폼값 전송 + 인코딩 설정 (7) | 2014.07.22 |
스프링3(Spring3) MVC 연동 (1) - STS 다운로드 및 헬로월드 출력하기 (6) | 2014.07.22 |