[ JSP ] 8장. 파일 업로드

ma.caron_g·2021년 6월 7일
0

JSP

목록 보기
8/9
post-thumbnail

[ 파일 업로드 ] 📕

파일 업로드는 웹 브라우저에서 서버로 파일을 전송하여 서버에 저장하는 것

  • 텍스트 파일
  • 바이너리 파일
  • 이미지 파일
  • 문서 등

웹 브라우저에서 서버로 파일을 전송하기 위해 JSP 페이지에 폼 태그를 사용하고, 전송된 파일을 서버에 저장하기 위해 오픈 라이브러리를 사용해야 함.



[ 파일 업로드를 위한 JSP 페이지 ] 📙

웹 브라우저에서 서버로 파일을 전송하기 위한 형식은 다음과 같다

<form action="jsp파일" method="post" enctype="multipart/form-data">
  <input type="file" name="요청 파라미터 이름">
</form>

해설

  • form 태그의 method는 반드시 POST 방식으로 설정
  • form 태그의 enctype 속성은 반드시 multipart/form-data로 설정
  • form 태그의 action 속성은 파일 업로드를 처리할 JSP파일로 설정
  • 파일 업로드를 위해 input 태그의 type 속성을 file로 설정,
    만약 2개 이상의 파일을 업로드 하려면, input 태그를 사용 하고 name 속성에 서로 다른 값을 설정
<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 클래스

  • 한글 인코딩 값을 쉽게 얻을 수 있음
  • 업로드 되는 파일이 서버에 기존 파일과 중복된다면, 자동으로 변경

생성자 형식은 다음과 같다

MultipartRequest(request, saveDirectory, maxPostSize, encoding, policy)
매개변수설명
requestRequest 내장 객체를 설정
saveDirectory파일 저장 경로를 설정
maxPostSize파일의 최대 크기(바이트 단위)를 설정, 초과시 IOException이 발생
encoding인코딩 유형을 설정
policy파일명 변경 정책을 설정. 저장 경로에 파일명이 중복되면 덮어쓰기 여부를 설정하고, 설정하지 않으면 덮어쓰기


[ MultipartRequest 메서드 ] 📘

메서드유형설명
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사용자가 업로드한 실제 파일명을 반환. 파일명이 중복되면 변경되기 전의 파일명을 반환
profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글