WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서...

22
SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES WebFileManager 가이드 2012.10.04 서울특별시 구로구 구로 3 한신 IT 타워 1215 Phone 02-2108-8030 • Fax 02-2108-8031 www.softbase.co.kr Copyright © 2010 SOFTBase Inc. All rights reserved

Transcript of WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서...

Page 1: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES

WebFileManager 가이드

2012.10.04

서울특별시 구로구 구로 3동 한신 IT 타워 1215호

Phone 02-2108-8030 • Fax 02-2108-8031 www.softbase.co.kr

Copyright © 2010 SOFTBase Inc. All rights reserved

Page 2: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 2 -

1 장: WebFileManager 개요 ............................................................................................................................................ 3 

WebFileManager 개요 ............................................................................................................................................................................... 3 

HTTP 멀티 파트 데이터 ......................................................................................................................................................................... 4 

파일 업로드 아키텍처 ................................................................................................................................................................................ 5 

파일 업로드 아키텍처 ............................................................................................................................................................................ 5 

파일 처리 결과 데이터 형식 ................................................................................................................................................................ 6 

파일 업로드 절차 ..................................................................................................................................................................................... 7 

파일 다운로드 아키텍처 ............................................................................................................................................................................ 8 

정적 파일 다운로드 아키텍처 ............................................................................................................................................................. 9 

동적 파일 다운로드 아키텍처 .......................................................................................................................................................... 10 

파일 업로드/다운로드 비즈니스 흐름 .............................................................................................................................................. 11 

파일 업로드 비즈니스 흐름 .............................................................................................................................................................. 11 

파일 다운로드 비즈니스 흐름 .......................................................................................................................................................... 13 

2 장: WEB 파일 매니저 속성 ......................................................................................................................................... 14 

WEB 파일 매니저 주요 속성 및 이벤트 ........................................................................................................................................... 14 

WEB 파일 매니저의 주요 속성 ........................................................................................................................................................ 14 

WEB 파일 매니저의 주요 이벤트 ................................................................................................................................................... 14 

WEB 파일 매니저 주요 API ................................................................................................................................................................... 15 

업로드 관련 API ..................................................................................................................................................................................... 15 

업로드 처리 결과 관련 API ............................................................................................................................................................... 16 

다운로드 관련 API ................................................................................................................................................................................ 17 

다운로드 처리 결과 관련 API .......................................................................................................................................................... 19 

3 장: WEB 파일 매니저 샘플 ......................................................................................................................................... 20 

WEB 파일 매니저 화면 샘플 ................................................................................................................................................................ 20 

파일 업로드 처리 서버 샘플 ................................................................................................................................................................. 21 

WebContent 디레토리 구조 ............................................................................................................................................................. 21 

WebFileManager.jsp 소스 설명 ...................................................................................................................................................... 22 

목목차차��

Page 3: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 3 -

이 장에서는 XFrameDevStudio 에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다. 이

장에서 기술하는 내용은 아래와 같습니다.

WebFileManager 개요

파일 업로드 아키텍처

파일 다운로드 아키텍처

파일 업로드/다운로드 비즈니스 흐름

WebFileManager 는 XFrame 에서 제공하는 컴포넌트의 하나로, HTTP 프로토콜을 이용하여 파일을

업로드하거나 다운로드하는 기능을 제공한다. WebFileManager 가 제공하는 주요 기능은 아래와 같다.

사용자 PC에 있는 파일을 Web 서버로 업로드

Web 서버에 있는 파일을 다운로드하여 사용자 PC에 저장하는 기능

파일 업로드/다운로드 진행상태 표시 기능

파일 업로드시 부가 파라미터 정보 전달 기능

WebFileManager 컴포넌트는 아래의 그림과 같이 XFrameDevStudio 의 오브젝트 창에서 표시되어 있다.

11 장장:: WWeebbFFiilleeMMaannaaggeerr 개개요요

WebFileManager 개요

Page 4: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 4 -

WebFileManager 컴포넌트는 화면에 UI 를 구성하는 컴포넌트가 아니라, 기능을 제공하는 컴포넌트이며, 파일

업로드 및 다운로드시 진행상테를 보여주는 창이 표시된다.

HTTP 멀티 파트 데이터

WebFileManager 를 통해서 파일을 업로드하는 기능을 이행하기 위해서는 우선 HTTP 프로토콜의 “Multi-Part

데이터”라는 스펙을 이해해야 한다.

HTTP 멀티 파트 데이는 RFC-1867 “Form-based File Upload in HTML” 표준 정의되어 있는 통신 규약이며,

HTTP 프로토콜이 기본적으로 파라미터 방식으로 텍스트 형식의 데이터만을 Web 서버로 전달할 수 있는

방식을 확장하여, 이미지나 파일등 이진 데이터를 Web 서버로 전달하기 위해서 정의된 규약이다.

Page 5: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 5 -

파일 업로드 아키텍처

파일 업로드 아키텍처는 아래의 그림과 같다.

구분 설명

1

WEB 파일 매니저는 서버 시스템으로 업로드할 파일을 처리할 URL 정보, 추가적인 파라미터,

실제 업로드할 파일 데이터 정보를 송신한다.

파라미터에는 업로드하는 파일에 대한 부가적인 정보를 Key=Value 형식으로 설정된다.

2

MultiPart로 수신되는 Request를 처리하는 JSP/Servlet이다.

대부분 MultiPart 데이터 처리를 위한 외부 라이브러리를 이용하여 업로드한 파일에 대한 처

리를 수행한다.. (예를 들어, Apache FileUplaod 라이브러리)

3 파라미터 정보를 파싱하여 파일 처리를 위한 부가적인 정보를 수집한다.

4 MultiPart로 수신된 파일 데이터를 처리한다.

파일 처리시 “3”번 단계에서 수집된 파라미터 정보를 활용한다.

5

파일 처리 결과를 WEB 파일 매니저에게 전송한다.

반드시 파일 처리 결과 데이터를 WEB 파일 매니저에게 전송해야, WEB 파일 매니저가 파일

업로드 처리를 종료한다.

파일 처리 결과는 특정한 데이터 형식을 가지고 있다. 파일 처리 결과에 대한 데이터 형식은

“파일 처리 결과 데이터 형식”을 참조한다.

WebFileManager WEB/WAS Server 시스템

파라미터 파싱파라미터 파싱

파일 데이터 처리파일 데이터 처리

파일 처리 결과 전송파일 처리 결과 전송

파일 업로드 요청파일 업로드 요청

파일 업로드 결과 확인파일 업로드 결과 확인

URL + 파라미터 +파일 데이터

URL + 파라미터 +파일 데이터

파일 처리 결과파일 처리 결과

WEBServerWEB

ServerWAS

ServerWAS

Server

JSP 또는 ServletJSP 또는 Servlet

파일 WRITE파일 WRITE

파일

WebFileManager WEB/WAS Server 시스템

파라미터 파싱파라미터 파싱

파일 데이터 처리파일 데이터 처리

파일 처리 결과 전송파일 처리 결과 전송

파일 업로드 요청파일 업로드 요청

파일 업로드 결과 확인파일 업로드 결과 확인

URL + 파라미터 +파일 데이터

URL + 파라미터 +파일 데이터

파일 처리 결과파일 처리 결과

WEBServerWEB

ServerWAS

ServerWAS

Server

JSP 또는 ServletJSP 또는 Servlet

파일 WRITE파일 WRITE

파일

파일 업로드 아키텍처

Page 6: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 6 -

파일 처리 결과 데이터 형식

업로드된 파일을 처리 이후에, 처리 결과는 아래와 같은 데이터 형식을 가진다.

구분 값 설명

데이터 시작 구분자 0x1C 데이터의 시작을 지정하는 구분자이다.

처리 결과

“success”

또는

“error”

업로드 처리 결과 메시지를 지정한다.

정상 처리되었을 경우 “success”로 설정하고, 오류가 발생한 경우에

“error”로 설정한다.

처리 결과에 따라 “처리 결과 메시지” 항목의 값의 형식이 결정된다.

WEB 파일 매니저의 “isuploadsuccess” 함수 호출시 리턴값을 결정하는

기준이 된다.

데이터 구분자 0x1A 데이터 구분하는 구분자이다.

처리 결과 메시지

“처리 결과” 항목이 “success”인 경우, “SaveFileName=” + “파일정보”

로 설정한다.

“처리 결과” 항목이 “success”인 경우, WEB 파일 매니저의

“getuploadresultfilename” 함수 호출시 리턴되는 값은 “파일 정보” 이

다.

“처리 결과” 항목이 “error”인 경우, 에러 메시지를 설정한다.

“처리 결과” 항목이 “error”인 경우, WEB 파일 매니저의

“getuploadresulterrormsg” 함수 호출시 리턴되는 값에 해당한다.

데이터 종료 구분자 0x1F 데이터의 끝을 지정하는 구분자이다.

Page 7: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 7 -

파일 업로드 절차

파일 업로드 절차는 아래의 그림과 같이 진행된다.

구분 설명

1

adduploadlist 함수를 호출하여 업로드할 파일에 대한 정보 및 업로드를 처리할 URL과 파라

미터를 지정한다.

여러개의 파일을 한번에 업로드하기 위해서는 adduploadlist 함수를 여러 번 호출한다.

2

startupload 함수를 호출하여, 실제 파일에 대한 업로드 작업을 수행한다.

adduploadlist 함수를 통해서 추가된 파일들은 한번에 서버로 전송되는 것이 아니라, 개별 파

일별로 업로드 처리된다.

3 파일 업로드를 처리하는 JSP 또는 Servlet은 파라미터와 파일 데이터를 처리하고, “파일 처리

결과 데이터 형식”에 맞추어 결과를 WEB 파일 매니저에게 전달한다.

4 isuploadsuccess 함수를 통해서 추가된 개별 파일에 대해서 정상 처리 여부를 확인한다.

5 “4”번 단계에서 false가 리턴되면, getuploadresulterrormsg 함수를 호출하여 오류 내용을 확

인한다.

WebFileManager WEB/WAS Server화면 스크립트

업로드 대상 리스트 초기화업로드 대상 리스트 초기화deletealluploadlistdeletealluploadlist

adduploadlistadduploadlist

adduploadlistadduploadlist

startuploadstartupload

isuploadsuccessisuploadsuccess

getuploadresulterrormsggetuploadresulterrormsg

업로드 대상 정보 추가업로드 대상 정보 추가

업로드 대상 정보 추가업로드 대상 정보 추가

업로드대상정보및

파일업로드

업로드대상정보및

파일업로드

JSP 또는 ServletJSP 또는 Servlet

파라미터 및파일 데이터 처리

파라미터 및파일 데이터 처리

처리 결과처리 결과파일 개수만큼 호출파일 개수만큼 호출

업로드정보

업로드정보

업로드정보

업로드정보

JSP 또는 ServletJSP 또는 Servlet

파라미터 및파일 데이터 처리

파라미터 및파일 데이터 처리

처리 결과처리 결과

파일 업로드 처리 결과 리턴파일 업로드 처리 결과 리턴

파일 업로드 처리오류 메시지 리턴파일 업로드 처리오류 메시지 리턴

로컬 파일 경로URL + 파라미터로컬 파일 경로URL + 파라미터

WebFileManager WEB/WAS Server화면 스크립트

업로드 대상 리스트 초기화업로드 대상 리스트 초기화deletealluploadlistdeletealluploadlist

adduploadlistadduploadlist

adduploadlistadduploadlist

startuploadstartupload

isuploadsuccessisuploadsuccess

getuploadresulterrormsggetuploadresulterrormsg

업로드 대상 정보 추가업로드 대상 정보 추가

업로드 대상 정보 추가업로드 대상 정보 추가

업로드대상정보및

파일업로드

업로드대상정보및

파일업로드

JSP 또는 ServletJSP 또는 Servlet

파라미터 및파일 데이터 처리

파라미터 및파일 데이터 처리

처리 결과처리 결과파일 개수만큼 호출파일 개수만큼 호출

업로드정보

업로드정보

업로드정보

업로드정보

JSP 또는 ServletJSP 또는 Servlet

파라미터 및파일 데이터 처리

파라미터 및파일 데이터 처리

처리 결과처리 결과

파일 업로드 처리 결과 리턴파일 업로드 처리 결과 리턴

파일 업로드 처리오류 메시지 리턴파일 업로드 처리오류 메시지 리턴

로컬 파일 경로URL + 파라미터로컬 파일 경로URL + 파라미터

Page 8: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 8 -

파일 다운로드 아키텍처는 아래의 표와 같이 두가지 형식으로 처리될 수 있다.

구분 설명

정적 파일

다운로드

WEB 서버를 통해서 접근이 가능한 파일을 다운로드 하는 방법이다.

일반 웹 브라우저의 주소창에 파일 URL을 입력하여 접근 가능한 파일을 다운로드 하는 방법

이다.

파일은 물리적으로 WEB 서버가 접근 가능한 디렉토리에 저장되어 있다.

파일 처리는 순수하게 WEB 서버 자체에서 처리하므로, 별도의 JSP/Servlet이 필요없다.

동적 파일

다운로드

WAS 서버의 JSP/Servlet을 통해서 파일을 다운로드하는 방식이다.

일반 웹 브라우저의 주소창에 파라미터 정보 없이 파일 URL만을 입력해서는 파일을 접근할

수 없다.

JSP/Servlet에 대한 URL 및 파일 정보에 대한 추가적인 파라미터를 WEB/WAS 서버로 요청한

다.

URL에 해당하는 JSP/Servlet이 파라미터 정보를 이용하여 물리적인 파일을 처리한다.

파일은 물리적으로 WEB 서버가 접근 가능한 디렉토리에 저장되어 있을 필요는 없다.

파일에 대한 정보를 서버 시스템에서 데이터베이스에 관리할 떄 주로 사용된다.

파일 다운로드 아키텍처

Page 9: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 9 -

정적 파일 다운로드 아키텍처

정적 파일 다운로드 아키텍처는 아래의 그림과 같다.

구분 설명

1 WEB 서버를 통해서 접근이 가능한 파일에 대한 URL을 요청한다.

2 WEB 서버가 요청된 파일의 URL 정보를 수신한다.

3 WEB 서버가 요청된 파일을 URL 정보를 파싱하여 읽어들일 실제 파일의 경로를 결정한다.

WebFileManager WEB Server 시스템

URL 파싱URL 파싱

파일 READ 파일 READ

파일 데이터 전송파일 데이터 전송

WEB ServerWEB Server

WEB 경로 접근 가능정적인 파일

파일 다운로드 요청파일 다운로드 요청

파일 데이터 수신 및 저장파일 데이터 수신 및 저장

파일 URL파일 URL

파일 데이터파일 데이터

WebFileManager WEB Server 시스템

URL 파싱URL 파싱

파일 READ 파일 READ

파일 데이터 전송파일 데이터 전송

WEB ServerWEB Server

WEB 경로 접근 가능정적인 파일

파일 다운로드 요청파일 다운로드 요청

파일 데이터 수신 및 저장파일 데이터 수신 및 저장

파일 URL파일 URL

파일 데이터파일 데이터

Page 10: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 10 -

동적 파일 다운로드 아키텍처

동적 파일 다운로드 아키텍처는 아래의 그림과 같다.

구분 설명

1 파일 처리를 수행하는 URL 및 다운로드 받을 파일에 대한 추가적인 정보를 포함하고 있는

파라미터를 WEB 서버로 요청한다.

2 파일 처리를 수행하는 JSP/Servlet이 요청된 정보를 처리한다.

3 파리미터 정보를 파싱한다.

4 파싱된 파라미터 정보를 이용하여 실제로 읽어들일 파일의 경로를 결정한다.

WebFileManager WEB/WAS Server 시스템

파라미터 파싱파라미터 파싱

물리적인 파일 경로 결정물리적인 파일 경로 결정

파일 데이터 전송파일 데이터 전송

파일 다운로드 요청파일 다운로드 요청

파일 데이터 수신 및 저장파일 데이터 수신 및 저장

URL + 파라미터URL +

파라미터

파일 데이터파일 데이터

WEBServerWEB

ServerWAS

ServerWAS

Server

JSP 또는 ServletJSP 또는 Servlet

파일 READ 파일 READ

파일

WebFileManager WEB/WAS Server 시스템

파라미터 파싱파라미터 파싱

물리적인 파일 경로 결정물리적인 파일 경로 결정

파일 데이터 전송파일 데이터 전송

파일 다운로드 요청파일 다운로드 요청

파일 데이터 수신 및 저장파일 데이터 수신 및 저장

URL + 파라미터URL +

파라미터

파일 데이터파일 데이터

WEBServerWEB

ServerWAS

ServerWAS

Server

JSP 또는 ServletJSP 또는 Servlet

파일 READ 파일 READ

파일

Page 11: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 11 -

HTML 의 FORM 데이터처럼 하나의 Request 로 데이터와 파일 데이터가 처리되는 것과 달리, WEB 파일

매니저를 통해서 파일을 서버에 업로드하는 것과 화면의 데이터를 서버에 송신하는 동작과 독립적으로

수행된다. 즉, 파일을 업로드하는 것과, 화면의 데이터를 서버에 송신하는 것은 별개의 API 를 통해서

수행된다는 것이다.

따라서, WEB 파일 매니저를 통해서 수행되는 파일 업로드/다운로드 처리를 수행하는 비즈니스 흐름은 아래와

같이 구현하는 것을 권고한다.

파일 업로드 비즈니스 흐름

파일 업로드 처리 비즈니스 흐름은 아래의 그림과 같다.

구분 설명

1 “파일 업로드 절차”에서 기술한 내용을 기준으로 파일 업로드 작업을 수행한다.

2

파일 업로드 처리 JSP 또는 Servlet은 업로드된 파일에 대한 유니크한 파일 ID를 생성한다.

파일 ID를 생성하는 이유는 서버에 파일 저장시 한글명으로 구성된 파일이거나 파일 이름에

공백이 있는 파일명으로된 파일을 사용자가 업로드 할 수 있기 때문이다.

3 파일 업로드 처리 결과 데이터에 실제 서버에 저장된 파일의 ID를 “파일 처리 결과 데이터

WebFileManager WEB/WAS Server화면 스크립트

파일 업로드 수행파일 업로드 수행파일 업로드 작업 수행파일 업로드 작업 수행 파일 업로드 처리JSP 또는 Servlet파일 업로드 처리JSP 또는 Servlet

파일 저장 ID 생성파일 저장 ID 생성

파일 업로드 처리 결과 확인파일 업로드 처리 결과 확인

파일명, 파일 ID와 함께업무 데이터 송신

파일명, 파일 ID와 함께업무 데이터 송신

파일 ID 정보 추출파일 ID 정보 추출

파일 저장 ID로업로드한 파일 저장

파일 저장 ID로업로드한 파일 저장

처리 결과에파일 저장 ID 포함

처리 결과에파일 저장 ID 포함파일 업로드 수행 결과 수신파일 업로드 수행 결과 수신

파일 업로드 결과 처리JSP 또는 Servlet

파일 업로드 결과 처리JSP 또는 Servlet

업무 데이터, 파일명 및

파일 ID 추출

업무 데이터, 파일명 및

파일 ID 추출

업무 데이터와 파일명, 파일 ID를 DB에 저장업무 데이터와 파일명, 파일 ID를 DB에 저장

처리 결과 리턴처리 결과 리턴업무 처리 결과 확인업무 처리 결과 확인

EndEnd

파일ID를이름으로파일 저장

WebFileManager WEB/WAS Server화면 스크립트

파일 업로드 수행파일 업로드 수행파일 업로드 작업 수행파일 업로드 작업 수행 파일 업로드 처리JSP 또는 Servlet파일 업로드 처리JSP 또는 Servlet

파일 저장 ID 생성파일 저장 ID 생성

파일 업로드 처리 결과 확인파일 업로드 처리 결과 확인

파일명, 파일 ID와 함께업무 데이터 송신

파일명, 파일 ID와 함께업무 데이터 송신

파일 ID 정보 추출파일 ID 정보 추출

파일 저장 ID로업로드한 파일 저장

파일 저장 ID로업로드한 파일 저장

처리 결과에파일 저장 ID 포함

처리 결과에파일 저장 ID 포함파일 업로드 수행 결과 수신파일 업로드 수행 결과 수신

파일 업로드 결과 처리JSP 또는 Servlet

파일 업로드 결과 처리JSP 또는 Servlet

업무 데이터, 파일명 및

파일 ID 추출

업무 데이터, 파일명 및

파일 ID 추출

업무 데이터와 파일명, 파일 ID를 DB에 저장업무 데이터와 파일명, 파일 ID를 DB에 저장

처리 결과 리턴처리 결과 리턴업무 처리 결과 확인업무 처리 결과 확인

EndEnd

파일ID를이름으로파일 저장

파일 업로드/다운로드 비즈니스 흐름

Page 12: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 12 -

형식”의 “처리 결과 메시지” 항목에 형식에 맞게 설정한다.

4 파일 ID 정보를 추출하여, 사용자에게 보여주거나, 아니면 숨김 데이터를 저장한다.

5 서버로 송신할 데이터에 실제 파일명과 파일 ID를 포함하여 서버로 송신한다.

6

서버의 데이터베이스에 화면 데이터와 파일 ID, 파일명을 함께 저장한다.

파일명은 사용자에게 파일의 이름을 표시하기 위한 목적으로, 파일 ID는 실제 파일을 다운로

드할 때 사용할 목적으로 저장한다.

Page 13: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 13 -

파일 다운로드 비즈니스 흐름

파일 다운로드 처리 비즈니스 흐름은 아래의 그림과 같다.

구분 설명

1 파일 다운로드 대상 파일 정보를 조회를 서버에 요청한다.

2 파일 다운로드 목록 조회 처리 JSP 또는 Servlet은 “파일 업로드 비즈니스 흐름”의 “6” 단계에

서 저장한 파일명, 파일 ID, 기타 데이터를 데이터베이스에서 조회하여 리턴한다.

3 조회 결과 데이터에서 파일 ID에 해당하는 서버의 파일을 파일명으로 저장하라는 요청을

WEB 파일 매니저에게 등록하고, 다운로드를 요청한다.

4 WEB 파일 매니저는 요청받은 파일 ID에 해당하는 URL 경로에서 파일을 다운로드한다.

5 다운로드한 파일은 파일명에 해당하는 이름으로 사용자 PC에 저장하고 처리 결과를 리턴한

다.

WebFileManager

WEB/WAS Server화면 스크립트

파일 다운로드 수행파일 다운로드 수행

다운로드 대상 파일 정보 조회다운로드 대상 파일 정보 조회 파일 다운로드 목록 조회 처리JSP 또는 Servlet

파일 다운로드 목록 조회 처리JSP 또는 Servlet

업무 데이터, 파일명 및

파일 ID 정보 리턴

업무 데이터, 파일명 및

파일 ID 정보 리턴조회 결과 데이터 확인조회 결과 데이터 확인

조회 결과 데이터중 파일 ID와파일명을 기준으로

다운로드 수행

조회 결과 데이터중 파일 ID와파일명을 기준으로

다운로드 수행

파일ID를 이름으로저장된 파일

파일명으로 파일 저장

파일 다운로드 결과 확인파일 다운로드 결과 확인

EndEnd

WebFileManager

WEB/WAS Server화면 스크립트

파일 다운로드 수행파일 다운로드 수행

다운로드 대상 파일 정보 조회다운로드 대상 파일 정보 조회 파일 다운로드 목록 조회 처리JSP 또는 Servlet

파일 다운로드 목록 조회 처리JSP 또는 Servlet

업무 데이터, 파일명 및

파일 ID 정보 리턴

업무 데이터, 파일명 및

파일 ID 정보 리턴조회 결과 데이터 확인조회 결과 데이터 확인

조회 결과 데이터중 파일 ID와파일명을 기준으로

다운로드 수행

조회 결과 데이터중 파일 ID와파일명을 기준으로

다운로드 수행

파일ID를 이름으로저장된 파일

파일명으로 파일 저장

파일 다운로드 결과 확인파일 다운로드 결과 확인

EndEnd

Page 14: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 14 -

이 장에서는 XFrameDevStudio 에서 제공하는 WEB 파일 매니저의 속성, 이벤트, API 에 대하여 기술합니다.

이 장에서 기술하는 내용은 아래와 같습니다.

WEB 파일 매니저 주요 속성 및 이벤트

WEB 파일 매니저 주요 API

WEB 파일 매니저의 주요 속성

WEB 파일 매니저의 주요 속성은 아래의 표와 같다.

속성 설명

name WEB 파일 매니저 컴포넌트의 이름을 지정한다.

urlencoding_utf8

WEB 파일 매니저에서 서버로 URL 및 파리미터 송신시 UTF-8 형식으로 인코딩 수행

여부를 결정한다.

WEB/WAS 서버가 한글 데이터를 처리하는 형식이 UTF-8인 경우에는 “True”로 설정

해야 한다.

WEB 파일 매니저의 주요 이벤트

WEB 파일 매니저의 주요 이벤트는 아래의 표와 같다.

이벤트 설명

on_downloadcomplete 파일에 대한 다운로드 처리가 완료된 것을 알려주는 이벤트이다..

22 장장:: WWEEBB 파파일일 매매니니저저 속속성성

WEB 파일 매니저 주요 속성 및 이벤트

Page 15: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 15 -

WEB 파일 매니저에서 제공하는 주요 API 는 다음과 같은 성격으로 구분된다.

업로드 관련 API

업로드 관련 API 는 파일을 업로드하는 동작을 수행하는 것과 관련된 API 이다.

API 설명

deletealluploadlist

adduploadlist 함수를 통해서 WEB 파일 매니저에 등록되어 있는 업로드 리스트

정보를 모두 삭제한다.

WEB 파일 매니저를 통해서 업로드를 진행할 때, 가장 먼저 호출하는 것이 좋으

며, 업로드가 완료된 이후에도 호출하는 것이 좋다.

adduploadlist 함수를 통해서 등록된 리스트는 deletealluploadlist 함수를 호출하

기 전까지는 리스트에 계속 존재한다.

deleteuploadlist adduploadlist 함수를 통해서 WEB 파일 매니저에 등록되어 있는 업로드 리스트

정보중에 하나를 삭제한다.

adduploadlist

업로드할 대상 파일에 대한 정보를 WEB 파일 매니저에게 등록한다.

업로드 처리 대상 URL에 HTTP GET 방식으로 부가적인 파라미터를 추가하여 지

정할 수 있다.

adduploadlist 함수를 통해서 추가된 파일 업로드 정보는, 추가된 순서에 따라

Zero-기준의 인덱스가 할당되어 관리되며, “업로드 처리 결과 관련 API”에서 사용

된다.

startupload WEB 파일 매니져에 adduploadlist 함수를 통해서 추가된 모든 전송 리스트를 순

차적으로 하나씩 업로드를 수행한다.

WEB 파일 매니저 주요 API

Page 16: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 16 -

업로드 처리 결과 관련 API

업로드 처리 결관 관련 API 는 파일을 업로드하는 동작의 수행 결과를 확인하는 것과 관련된 API 이다.

API 설명

getuploadresultcount

업로드 리스트의 전체 개수를 반환하는 API이다.

adduploadlist 함수를 통해서 WEB 파일 매니저에 등록되어 있는 업로드 리스

트 정보의 개수와 동일하다.

isuploadsuccess

adduploadlist 함수를 통해서 WEB 파일 매니저에 등록되어 업로드 수행이 정

상적으로 처리되었는지를 확인한다.

“파일 처리 결과 데이터 형식”의 “처리 결과” 항목의 값을 기준으로 정상 처리

여부를 판단한다.

getuploadresulterrormsg

업로드 수행 결과, 오류가 발생한 경우, 오류 메시지를 리턴한다.

서버에서 송신한 “파일 처리 결과 데이터 형식”의 “처리 결과 메시지” 항목의

값을 리턴한다.

getuploadresultfilename

업로드 수행 결과, 정상적으로 처리된 경우, 서버에서 서버에서 송신한 “파일

처리 결과 데이터 형식”의 “처리 결과 메시지” 항목의 SaveFileName 값에 해

당하는 값을 리턴한다.

서버에서 값을 설정하지 않은 경우에는 공백 문자열이 리턴된다.

Page 17: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 17 -

다운로드 관련 API

다운로드 관련 API 는 파일을 다운로드하는 동작을 수행하는 것과 관련된 API 이다.

API 설명

deletealldownloadlist

adddownloadlist 함수를 통해서 WEB 파일 매니저에 등록되어 있는 다운로드 리

스트 정보를 모두 삭제한다.

WEB 파일 매니저를 통해서 다운로드를 진행할 때, 가장 먼저 호출하는 것이 좋으

며, 업로드가 완료된 이후에도 호출하는 것이 좋다.

adddownloaddlist 함수를 통해서 등록된 리스트는 deletealldownloadlist 함수를

호출하기 전까지는 리스트에 계속 존재한다.

deletedownloadlist adddownloadlist 함수를 통해서 WEB 파일 매니저에 등록되어 있는 다운로드 리

스트 정보중에 하나를 삭제한다.

adddownloadlist

다운로드할 대상 파일에 대한 정보를 WEB 파일 매니저에게 등록한다.

다운로드 처리 대상 URL에 HTTP GET 방식으로 부가적인 파라미터를 추가하여

지정할 수 있다.

adddownloadlist 함수를 통해서 추가된 파일 다운로드 정보는, 추가된 순서에 따

라 Zero-기준의 인덱스가 할당되어 관리되며, “다운드 처리 결과 관련 API”에서

사용된다.

setdownloadsavedir

다운로드할 파일을 저장할 디렉토리를 지정한다.

showdownloaddialog 함수를 이용하여 다운로드를 수행할 때,

showdownloaddialog 함수 호출 이전에 정보를 설정한다.

showdownloaddialog

동기방식으로 사용자의 동작에 의해서 다운로드를 수행처리할 창을 표시한다.

이 함수를 통해서 다운로드를 수행하면, on_downloadcomplete 이벤트가 발생하

기 않는다.

showdownloaddialogex

동기방식으로 사용자의 동작에 의해서 다운로드를 수행처리할 창을 표시할때, 다

운로드 하기 전에 다운로드할 파일의 크기 정보를 먼저 검사할지 여부를 옵션으

로 처리할 수 있다.

이 파라미터를 false로 줄경우 대화상자 Load시 파일 사이즈를 웹서버로부터 읽

어 오지 않기 때문에 속도면에서 유리하다. 또는 파일 사이즈를 알아올 수 없는

환경에서는 false로 지정하는 것이 불필요한 오류를 줄일 수 있다.

downloadoption 다운로드를 처리할 옵션을 설정한다. Startdownload 또는 showdownloaddialog

함수를 호출하기 전에 호출해야 한다.

startupload

WEB 파일 매니져에 adddownloadlist 함수를 통해서 추가된 모든 다운로드 리스

트를 순차적으로 하나씩 다운로드를 수행한다.

이 함수를 통해서 다운로드를 수행하면, on_downloadcomplete 이벤트가 발생한

Page 18: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 18 -

다.

stopdownload WEB 파일 매니져에 startupload 함수를 통해서 비동기 모드로 다운로드를 수행

할 때, 중간에 다운로드를 중단하기 위한 용도로 사용된다.

Page 19: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 19 -

다운로드 처리 결과 관련 API

다운로드 처리 결관 관련 API 는 파일을 다운로드하는 동작의 수행 결과를 확인하는 것과 관련된 API 이다.

API 설명

getlastdownfilecount

다운로드할 파일 리스트의 전체 개수를 반환하는 API이다.

adddownloadlist 함수를 통해서 WEB 파일 매니저에 등록되어 있는 다운로드

리스트 정보의 개수와 동일하다.

getlastdownfileresult adddownloadlist 함수를 통해서 WEB 파일 매니저에 등록되어 다운로드 수행

이 정상적으로 처리되었는지를 확인한다.

getlastdownfileerrormsg 다운로드 수행 결과, 오류가 발생한 경우, 오류 메시지를 리턴한다.

getlastdownfilename 다운로드 수행 결과, 정상적으로 처리된 경우, 로컬 PC에 저장한 파일 이름을

리턴한다.

getlastdownfileurl 다운로드 수행 결과, 정상적으로 처리된 경우, 다운로드한 파일의 URL 정보를

리턴한다.

getlastdownloadsavedir 다운로드한 파일을 저장한 로컬 디렉토리 경로를 리턴한다.

Page 20: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 20 -

이 장에서는 XFrame 에서 제공하는 WEB 파일 매니저의 샘플에 대한 정보를 기술합니다. 이 장에서 기술하는

내용은 아래와 같습니다.

WEB 파일 매니저 화면 샘플

파일 업로드 처리 서버 샘플

WEB 파일 매니저 샘플은 다음과 같이 두개의 화면으로 구성되어 있다.

구분 설명

업로드 샘플

FileUplaod.xml, FileUplaod.js

WEB 파일 매니저 서버 샘플의 WebFileManager.jsp를 이용하여 파일을 업로

드한다.

다운로드 샘플 FileDownload.xml FileDownload.js

WEB 파일 매니저 서버 샘플의 download 디렉토리의 파일을 다운로드한다.

파일 업로드 샘플을 수행하기 위해서는 WAS 서버 및 파일 업로드 처리 서비스(JSP/Servlet)가 필요하고, 파일

다운로드 샘플을 수행하기 위해서는 WEB 및 WAS 서버가 필요하다.

샘플 화면은 직관적으로 구성되어 있으며, 소스에 대한 설명은 소스내의 Comment 를 참조한다.

33 장장:: WWEEBB 파파일일 매매니니저저 샘샘플플

WEB 파일 매니저 화면 샘플

Page 21: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 21 -

파일 업로드를 처리하는 샘플은 Apache Commons 프로젝트의 Commons FileUpload 라이브러리 및

Commons IO 라이브러리를 이용하여 작성되었다.

Eclipse 상에서 “Dynamic Web Project” 형식으로 “webfilemanager”라는 프로젝트를 생성하였고, WebContent

디렉토리의 WebFileManager.jsp 파일을 참조하면 된다.

WebContent 디레토리 구조

WebContent 디렉토리에는 아래와 같은 디렉토리가 구성되어 있다.

구분 설명

uploadfile 업로드된 파일을 저장할 기본 디렉토리

downloadfile 다운로드될 파일을 저장되어 있는 기본 디렉토리

tempfile 업로드된 파일을 처리시 임시로 사용할 디렉토리

WEB-INF/lib Apache Commons 프로젝트의 FileUpload 관련 라이브러리가 들어있는 디렉토리

파일 업로드 처리 서버 샘플

Page 22: WebFileManager Guide 20121006 WebFileManager 가이드 - 3 - 이 장에서는 XFrameDevStudio에서 제공하는 WebFileManager 개요 및 아키텍처에 대해서 기술합니다.

WebFileManager 가이드

- 22 -

WebFileManager.jsp 소스 설명

WebFileManager.jsp 에서 // TODO: 라고 표시된 항목에 대해서, 각 프로젝트의 환경에 맞추어 변경해야 한다.

아래는 변경 대상 변수 및 함수에 대한 설명이다.

구분 항목 설명

변수

maxMemoryFileSize

메모리에서 처리할 최대 업로드 파일 크기

업로드한 파일이 메모리에서 최대 업로드 파일 보다 큰 경우

"tempDirAbsolutePath” 변수에 지정한 디렉토리를 이용하여 파

일이 처리된다.

maxFileSize 업로드한 파일에 대한 최대 파일 크기

tempDirAbsolutePath 업로드된 파일 처리시 사용할 임시 디렉토리 지정

saveBaseDirAbsolutePath 업로드된 파일을 저장할 서버 디렉토리의 절대 경로

함수

getSaveFileName 업로드된 파일을 저장할 파일 이름 결정

msgCharacterSetConvert 업로드 처리 결과 메시지를 송신하기 전에, 메시지에 대한 코드

변환 수행

getSaveFileAbsolutePath 파라미터 정보를 이용하여 업로드된 파일을 저장할 파일의 절대

경로를 구하여 리턴

소스에 대한 상세 설명은 소스내의 Comment 를 참조한다.