관리 메뉴

공부한것들을 정리하는 블로그 입니다.

1. 파일 업로드 기능 : 환경설정 본문

(2019) 사이드 프로젝트/AdminMngSys(관리자페이지-MVC1,MVC2)

1. 파일 업로드 기능 : 환경설정

호 두 2019. 8. 27. 10:03
반응형

 

자바는 파일을 올리고 받는 것을 원래 지원해주지 않습니다. 그래서 두군데서 이를 지원합니다.

1. 오레일리(oreilly)에서 배포하고 있는 servlets.com (2008년 업데이트가 마지막)

2. 아파치(apache)에서 배포하고 있는  Commons 자료 (2014년 업데이트가 마지막)

 

개인적으로 Spring Framework를 사용하는 경우에는 2. 아파치를 이용하는게 좋다고 생각합니다. maven을 이용하고 Spring Framework에서 제공하는 강력한 기능들을 사용할 수 있기 때문입니다.

하지만 이번 실습에서는 plain java(DispatcherServlet), jsp, html, javascript 등을 사용하고 Spring에서 제공하는 기능들은 추후 실습때 적용해보도록 할 예정입니다.

따라서 이번에는 1. 오레일리(oreilly)에서 배포하는 FileUpload를 사용하여 구현하도록 하겠습니다.

( ***참고 : 2. 아파치(apache)에서 배포하는 FileUpload는 해당 포스트 하단에서 간략하게 설명하고 넘어갑니다.)

 

 

 

1. 먼저 oreilly.jar 파일을 다운로드 후 프로젝트에 참조해주어야 합니다.

http://www.servlets.com 접속하면 해당 화면이 나오는데 여기서 com.oreilly.servlet을 클릭하시면 됩니다.

해당 화면을 아래로 스크롤 하시다보면 Download 항목이 있습니다. 그 곳에 있는 cos-26Dec2008.zip를 다운받으시면 됩니다.

다운 받으신 후 압출을 풀고 해당 lib 폴더안의 cos.jar 파일을 복사합니다.

이것을 사용하고있는 프로젝트에 WEB-INF > lib 폴더에 붙여넣어 사용하시면 됩니다.

그리고 파일 업로드할 시 저장될 폴더를 WebContent안에 만들어 줍니다. (File)

그 후 해당 소스코드로 사용하시면 사용하실 수 있습니다.

 

 

 

2. 프로젝트에 참조하실때

프로젝트에 oreilly.jar 파일을 참조해주시거나 혹은 CLASSPATH 환경변수에 넣어주실 수도 있습니다. (예: %CATALINA_HOME%\lib\oreilly.jar)

저는 프로젝트에 직접 참조하였습니다.

 

대략적인 프로젝트 경로는 이러합니다. 실습이 진행되면서 점점 더 추가 될 예정입니다.

 

 

 

3. web.xml 및 DispatcherServlet.java 파일에서의 사용

 

 

DispatcherServlet.java

위의 web.xml을 보시면 아시겠지만, DispatcherServlet을 직접 만들어서 사용하기 때문에 import하는 경로는 springframework가 아니라 com.oreilly.servlet입니다.

 

 

파일첨부

cos.jar
0.05MB
oreilly.jar
0.26MB

 

 

 

(번외)4.  [ 2. 아파치(apache)에서 배포하는 FileUpload] 를 사용하는 경우

홈페이지에 접속하여 라이브러리를 다운로드 받을 수도 있고, maven을 이용해 다운로드 받아서 프로젝트에 참조하시면 됩니다. 저는 maven을 이용하여 다운로드 받는것을 추천드립니다.

 

pom.xml

설정파일(pom.xml)을 열어서 다음의 dependency를 추가하시고 파일업로드 기능을 구현하는 *controller.java파일에서 import하여 사용하시면 됩니다.

		<!-- MultipartHttpServletRequset : 파일 업로드/다운로드 관련 추가 20190816 -->
		<!-- Apache Commons IO » 2.6 -->
		<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
		<dependency>
		    <groupId>commons-io</groupId>
		    <artifactId>commons-io</artifactId>
		    <version>2.6</version>
		</dependency>
		<!-- Apache Commons FileUpload -->
		<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
		<dependency>
		    <groupId>commons-fileupload</groupId>
		    <artifactId>commons-fileupload</artifactId>
		    <version>1.4</version>
		</dependency>

 

반응형
Comments