<파일 업로드>
먼저, 파일 업로드 라이브러리를 설치 해주어야 한다.
1. http://www.servlets.com 에 들어간다.
2. com.oreily.servlet 를 누르고
3. 맨 밑의 zip 파일을 다운로드 한다.
4. 다운로드 받은 라이브러리 (coz.jar) 를 프로젝트의 WEB-INF > lib 에 복사한다.
1 2 3 4 | <form action="fileFormOk.jsp" method="post" enctype="multipart/form-data"> 파일 : <input type="file" name="file"> <br/> <input type="submit" value="업로드"/> </form> | cs |
이와 같이 form을 만들어 주면, 파일을 업로드 할 수 있게 나온다.
enctype을 multipart/form-data로 설정해 주어야 한다는 것과 input type 을 file 로 해주는 것을 주의해야 한다.
1 2 3 | <%@ page import="java.util.Enumeration" %> <%@ page import="com.oreilly.servlet.MultipartRequest" %> <%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %> | cs |
라이브러리를 복사해 주었으니, jsp 파일에 다음과 같이 import 시켜준다.
1 2 3 4 | String path = request.getRealPath("fileFolder"); //파일이 저장되는 경로 int size= 1024 * 1024 * 10; //10M String file = ""; // 내가 업로드한 파일의 이름 String oriFile=""; // 같은 이름의 파일이 존재할 시 삭제되지 않게 하기 위해 1,2,3,4.. 붙인다. 실제로 이름 변경되기 전 실제 이름 | cs |
다음과 같이 경로를 설정해주고, 파일의 사이즈, 이름과 관련된 변수들을 선언해준다.
1 | MultipartRequest multi = new MultipartRequest(request, path, size, "EUC-KR", new DefaultFileRenamePolicy()); | cs |
다음과 같이 MultipartRequest 객체를 통해, 파일 업로드를 진행한다. request 변수와 path, 최대 사이즈, 파일 이름, 같은 이름의 파일이 있을 때 어떻게 할 것인지 등등을 설정해 준다.
1 2 3 4 | Enumeration files = multi.getFileNames(); String str = (String) files.nextElement(); file= multi.getFilesystemName(str); oriFile = multi.getOriginalFileName(str); | cs |
위와같이 파일 이름을 변수에 저장하는 것도 가능하다.
실제 이클립스 JSP 프로젝트의 WebContent에 fileFolder가 있는데, 클라이언트 측에서 어떠한 파일을 업로드를 했을 때 그곳으로 파일이 업로드 되는 것이 아니다.
톰캣이 컴파일 되는 경로로 들어가 같은 프로젝트 이름을 가진 폴더를 들어가면, fileFolder 를 발견할 수 있다. 그곳에 업로드 한 파일이 저장된다.
'JSP > 정리' 카테고리의 다른 글
[jsp] JSTL (0) | 2017.01.20 |
---|---|
[jsp] EL(Expression Language) (0) | 2017.01.19 |
[jsp] 커넥션 풀 (0) | 2017.01.17 |
[jsp/DB] mysql 과 jsp 연동하기 (0) | 2017.01.17 |
[jsp] 자바 빈 (0) | 2017.01.10 |
댓글