본문 바로가기

ETC/JSP

JSP- FileUpload1

p312 ~ 321 FileUpload예제는 총 4개의 .Jsp 파일로 구성되어있다

4개의 Jsp 파일이 어떻게 동작하는지 어떤 역할을 하는지 먼저 알아보자

( 각 Jsp 파일은 다음 Jsp파일로 request )

 

 1.  End유저의 입력을 받고 
     서버로 데이터 전송할 때 데이 (바이트) 묶음이 어떤타입 (MIME,enctype) 인지
     서버측 역할인 fileUpload로 보냄

 

 2.  os.jar 라이브러리를 사용하여
     요청받은 데이터를 분석하여
     파일 정보(파일 이름, 사용자 입력 문자열 데이터)를 보여준다
     파일데이터는 Cos.jar 의 MultipartRequest의 /upload 디렉토리에 저장

 

 

 3.  End유저가 업로드한 파일의 정보를 input type hidden으로 받아서
     다운로드가 가능하게끔 하는 view페이지 

 

 

 4.  (서버 입장에서) 다운로드 보낼 파일의 서버 내부 위치는 어디인지?
     Client에게 보내는 responese의 내용을 response Header를 조작하여
     브라우저 다운로드가 가능하도록 변경
     MS IE일 경우 대응

 

 


 

<1. fileUploadForm (EndUser의 입력을 받는다) >

11 ~ 21 : section의 id인 uploadFormArea 와 td_title class의 문자 서식을 바꿔주는 css코드

 

26        : <form> 태그의 enctype입력받은 데이터를 어떻게 처리할 것인지 세부적으로 설정하는 데 사용된다.
            여기서 Multipart는 HTTP를 통해 File을 SERVER로 전송하기 위해 사용되는 Content-type이다.

             > 파일 업로드를 위해서  Multipart/Content-type 이어야 한다

            ( fileUpload.jsp로 post방식으로 (안에 값을) 전송한다)

 

39 ~ 45 : fileName1 과 2 는 파일을 선택하여 전속하는 type 속성을 file로 설정

 


 

<2. fileUpload (파일 저장, 파일 정보보기) >

해당 페이지는 사용자에게 보여줄 필요가 없고 해당 정보를 전달만 해주면 되기 때문에 hidden

파일 업로드를 구현할 때, 클라이언트가 웹브라우저라면 form을 통해서 파일을 등록해서 전송하게 됩니다.

이때 웹 브라우저가 보내는 HTTP 메시지는 Content-Type 속성이 multipart/form-data>로 지정되며,

정해진 형식에 따라 메시지를 인코딩하여 전송합니다. 이를 처리하기 위한 서버는 

멀티파트 메시지에 대해서 각 파트별로 분리하여 개별 파일의 정보를 얻게 됩니다.

 

 

12 : 업로드할 폴더명을 지정 (/upload 파일로 지정해놨다) 

14 : 10 MegaByte : 파일 업로드 받을 때 허용하는 파일 길이

23 ~ 27 : 실제 파일 업로드를 담당하는 부분이다. 첫번째 인자는 전달된 파라미터 값을 얻기위해 request ,

             uploadPath는 업로드될 파일 위치 ( 12줄 코드의 : /upload ) 

             세 번째 인자 size는 파일의 크기 ( 14 줄의 10 MegaByte )

             네 번째 인자는 한글도 처리가능하게 하는 부분이다

             다섯 번째 인자는 똑같은 파일 업로드할 경우 이름이 중복되지 않도록 자동으로 파일이름 변환

 

MultipartRequest 객체를 생성한후 객체를 통해서 MultiPartRequest 클래스에서 제공하는 메소드들을 사용하면 쉽게 파일 업로드와 파라미터를 읽어 올 수 있다.

 

29 ~ 30 : getParameter 메소드를 이용해 클라이언트 폼에서 전송된 파라미터 값 가져온다

            Multipart/form-data 로 설정되어 있어서 Multi를 사용해야한다

 

32 : 폼에서 전송한 파라미터들의 이름을 Enumeration 타입으로 반환한다.

 

49 ~ 54 : 해당 페이지는 사용자에게 보여줄 필요가 없고 해당 정보를 전달만 해주면 되기 때문에 hidden

56 : a태그로 클릭시 파일체크하는 jsp페이지로 이동하도록         

 


 

 

<3. fileCheck (다운로드 화면) >

10 ~ 16 : fileUPload.jsp 페이지에서 넘어온 파라미터 값들을 받아서 각 변수에 저장한다

 

 

 


 

<4. file_down (다운로드 실행) >

7 : 클라이언트에서 파라미터로 전송되어 오는 다운로드할 파일 이름을 받는 부분

8 : 서버에 파일이 업로드된 폴더명을 지정

( 위의 폴더는 상대경로이고 절대경로 기준의 진짜 경로를 구해와야한다 )

 

10 : 저장되어 있는 폴더경로/저장된 파일명 으로 풀 path를 만들어준다.

11 : 자바에서는 \를 표시하기 위해서는 \를 한번 더 붙여주기 때문에 \\로 

 

13 : 다운로드 할 파일의 Mime 타입을 얻어오는 부분

15 ~ 17 : Mime 타입이 제대로 반환되지 않으면 기본 Mime 타입을 지정하는 부분

 

(MIME이란? Multipurpose Internet Mail Extensions의 약자로 간략히 파일 변환을 뜻한다고 할 수 있다)

'ETC > JSP' 카테고리의 다른 글

1- Jsp 게시판 (댓글기능)  (0) 2021.08.30
0 - JSP (MVC패턴) 게시판 만들기 시작  (0) 2021.08.26
JSP- forward 와 Redirect Test  (0) 2021.08.22
Jsp- sessionLogin  (0) 2021.08.18
Jsp- cookieExample  (0) 2021.08.18