파일 업로드는 웹 브라우저에서 서버로 파일을 전송하여 서버에 저장하는 것
웹 브라우저에서 서버로 파일을 전송하기 위해 JSP 페이지에 폼 태그를 사용하고, 전송된 파일을 서버에 저장하기 위해 오픈 라이브러리를 사용해야 함.
웹 브라우저에서 서버로 파일을 전송하기 위한 형식은 다음과 같다
<form action="jsp파일" method="post" enctype="multipart/form-data">
<input type="file" name="요청 파라미터 이름">
</form>
해설
<form method="post" enctype="multipart/form-data" action="jsp파일">
<p> 제목 : <input type="text" name="title">
<p> 파일 : <input type="file" name="fileName">
<p> <input type="submit" value="submit">
</form>
종류 | 특징 | 필요 라이브러리 |
---|---|---|
MultipartRequest | 가장 간단한 방법 | cos.jar |
Apache API | 편리하고 강력한 API 제공 | commons-fileupload.jar commons-io.jar |
MultipartRequest 클래스
생성자 형식은 다음과 같다
MultipartRequest(request, saveDirectory, maxPostSize, encoding, policy)
매개변수 | 설명 |
---|---|
request | Request 내장 객체를 설정 |
saveDirectory | 파일 저장 경로를 설정 |
maxPostSize | 파일의 최대 크기(바이트 단위)를 설정, 초과시 IOException이 발생 |
encoding | 인코딩 유형을 설정 |
policy | 파일명 변경 정책을 설정. 저장 경로에 파일명이 중복되면 덮어쓰기 여부를 설정하고, 설정하지 않으면 덮어쓰기 |
메서드 | 유형 | 설명 |
---|---|---|
getContentType(String name) | String | 업로드된 파일의 콘텐츠 유형을 반환. 업로드 된 파일이 없으면 null 반환 |
getParameter(String name) | String | 요청 파라미터 이름이 name인 값을 전달받음 |
getParameterNames() | java.util.Enumeration | 요청 파라미터의 이름을 Enumeration 객체 타입으로 반환 |
getFile(String name) | java.io.File | 서버에 업로드 된 파일에 대한 파일 객체를 반환. 업로드 된 파일이 없으면 null 반환 |
getFileNames() | java.util.Eumeration | 폼 페이지에 input 태그 내 type 속성 값이 file로 설정된 요청 파라미터의 이름을 반환 |
getFilesystemName(String name) | String | 사용자가 설정하여 서버에 실제로 업로드 된 파일명을 반환. 파일명이 중복되면 변경된 파일명을 반환 |
getOriginalFileName(String name) | String | 사용자가 업로드한 실제 파일명을 반환. 파일명이 중복되면 변경되기 전의 파일명을 반환 |