본문 바로가기

JSP

파일 업로드

Enumeration클래스는 전송된 모든 요청 파라미터 값을 받고 파라미터의 값을 하나씩 꺼내서 사용이 가능하다.

하나의 객체만 만들어놓고 데이터를 추가하고 데이터 타입을 리스트에 추가해 관리가 편할수있게 하는 것이 싱글톤 패턴

파일 업로드(file upload)
-웹 브라우저에서 서버로 파일을 전송하여 서버에 저장하는 것
-서버로 업로드할 수 있는 파일
(텍스트 파일, 바이너리 파일, 이미지 파일, 문서 등 다양한 유형이 있음)
-웹 브라우저에서 서버로 파일을 전송하기 위해 jsp페이지에 폼 태그 사용
-전송된 파일을 서버에 저장하기 위해 오픈 라이브러리 이용

단순한 자바 코드로 작성하여 처리할 수 없어 오픈 라이브러리인 cos.jar나 commonsfileupdoad.jar을 사용해야함

파일 업로드시 cos.jar을 lib폴더에 넣고 method="post"로 지정하고enctype="multipart/form-data"를 주어야한다.
form태그의 action 속성은 파일 업로드를 처리할 jsp파일로 설정하고 파일 업로드를 위해 input 태그의 type 속성을 file로 설정해야한다. (만약 여러 파일을 업로드하려면 2개 이상의 input 태그를 사용하고 name 속성에 서로 다른 값을 설정한다)

MultipartReuest
-웹 페이지에서 서버로 업로드되는 파일 자체만 다루는 클래스
-웹 브라우저가 전송한 multipart/form-data 유형과 POST 방식의 요청 파라미터 등을 분석한 후 일반 데이터와 파일 데이터를 구분하여 파일 데이터에 접근
-한글 인코딩 값을 얻기 쉽고, 서버의 파일 저장 폴더에 동일한 파일명이 있으면 파일명을 자동으로 변경
-오픈 라이브러리 cos.jar를 배포 사이트에서 직접 다운로드해서 사용

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

MultipartRequest 메소드


웹에서 서버로 업로드되는 파일 자체를

 다루는 NultipartRequest 클래스를 사용해야 하는데 이 클래스는 cos패키지에 포함되어 있는 파일 업로드 컴포넌트로 cos.jar를 다운하여 lib폴더에 붙여넣기 하고 import속성을 com.oreilly.servlet.* 로 지정한다.

파일 업로드의 개요

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

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

 

MultipartRequest를 이용한 파일 업로드

-MultipartRequest 클래스를 이용하여 파일을 업로드하려면 먼저 MultipartRequest 객체를 생성한다. 그리고 생성된 객체를 통해 MultipartRequest 클래스가 제공하는 메소드를 사용하여 웹 브라우저가 전송한 multipart/form-data 유형의 요청 파라미터를 읽어오고 파일을 업로드한다.

 

Commons-FileUpload를 이용한 파일 업로드

-Commons-FileUpload를 이용하여 파일을 업로드하려면 먼저 Commons-FileUpload 패키지에 포함되어 있는 DiskFileUpload 객체를 생성한다. 생성된 객체를 통해 DiskFileUpload 클래스가 제공하는 메소드를 사용하여 웹 브라우저가 전송한 multipart/form-data 유형의 요청 파라미터를 가져온다. 그리고 FileItem 클래스의 메소드를 사용하여 요청 파라미터가 일반 데이터인지 파일인지 분석 및 처리하여 파일을 업로드한다.

 

'JSP' 카테고리의 다른 글

정규표현식 유효성 검사  (0) 2023.07.04
유효성 검사  (0) 2023.07.03
내장 객체 폼  (0) 2023.06.28
action tag  (0) 2023.06.27
jsp 문법  (0) 2023.06.26