웹 환경에서 브라우저를 통해 웹서버로 파일을 전송할 수 있도록 해주는 업로드 컴포넌트는 실행환경에 따라 클라이언트 제품과 서버제품으로 구분됩니다. 아래 내용을 참고하셔서, 고객님의 웹사이트에 필요한 제품을 선택하시기 바랍니다.
예) 웹메일 서비스(한메일 등)를 이용해 편지쓰기를 할 때 웹페이지에서 받는사람, 메일제목, 메일내용과 같은 사용자입력 데이터와 함께 첨부파일을 선택해서 메일을 보냅니다. 이때, 웹서버에서 사용자입력 데이터 이외에 첨부파일을 수신하기 위해서는 웹서버에 서버용 업로드 컴포넌트가 설치되어 있어야 합니다. 또한, 여러 개의 첨부파일을 선택하고자 할 때 파일선택창을 매번 띄어서 추가하는 번거로움을 없애고, 큰 첨부파일을 추가했을 때 진행표시율을 사용자에게 실시간으로 볼 수 있도록 해주기 위해서는 클라이언트용 업로드 컴포넌트가 설치되어야 합니다.
HTTP 기반에서 파일을 전송하는 방법은 RFC 1867에 설명 되어 있습니다. 이 문서에 따르면, 파일을 서버에 보내기 위해서는 FORM 태그에서 ENCTYPE="multipart/form-data"라는 속성을 반드시 포함해야 합니다. ENCTYPE="multipart/form-data"이 의미하는 것은 폼 데이터를 멀티파트로 나누어서 특별한 포맷으로 전송하겠다는 뜻 입니다. 이 포맷은 ASP의 Request.Form 개체로 내용을 읽을 수가 없습니다. 그래서, 입력 데이터와 파일 데이터를 동시에 처리하고 Request.Form 개체를 대체할 수 있는 기능이 필요하며, 이런 요구를 충족시켜주는 컴포넌트가 업로드 컴포넌트입니다. 그러나 웹기반의 프로젝트 진행시 필요한 안정적이고 성능이 좋은 파일 업로드 기능을 단기간에 직접 구현하는 것은 쉬운 일이 아닙니다.
인터넷에서 파일을 전송(업로드/다운로드)한다고 하면 FTP프로그램들을 먼저 떠올리게 됩니다. 그러나 웹(WWW)환경에서 파일을 웹서버로 전송하기 위해 FTP프로그램을 사용한다거나 FTP프로토콜을 사용하는 것은 여러측면에서 바람직하지 않습니다. 일반적으로 웹사이트에서는 사용자가 입력한 데이터들과 함께 파일을 전송하는 경우가 많아 이를 함께 처리해 줄 수 있어야 하고, 전송된 데이터를 ASP등과 같은 서버측 스크립트에서 손쉽게 조작할 수 있어야 하기 때문입니다. 또한 웹서버의 보안관리 측면에서 HTTP전용포트(80) 이외에 FTP전용포트(21)를 추가적으로 오픈하고 관리해야 하는 부담이 발생할 수 있습니다.
다음은 FTP와 비교되는 업로드 컴포넌트를 이용한 HTTP업로드시의 몇가지 장점들입니다.
[보안 및 인증]
FTP의 경우 다수의 사용자 계정을 관리하거나 익명 연결을 허용하는 등 별도의 관리작업이 필요할 뿐만 아니라, 보안상 전송포트를 오픈하지않는 경우가 많지만, HTTP 기반 업로드 제품은 웹(HTTP)을 통해 실행되기 때문에 별도의 계정관리 부담이 없고, 방화벽, 프록시 서버 등과도 문제없이 작동하며, SSL을 이용하여 암호화된 파일 업로드 및 다운로드 기능을 구현하는 것이 가능합니다.
[업로드 제어]
HTTP 기반 업로드 제품은 업로드 가능한 파일의 용량 제한, 업로드 Timeout설정, 업로드 파일종류 제한, 업로드가 되는 위치의 변경 등과 관련된 다양한 제어를 ASP와 같은 서버측 스크립트에서 동적으로 수행할 수 있어 FTP와는 달리 업로드 제어에 대한 유연성이 뛰어 납니다.
DEXTUpload 제품군은 다음과 같이 구성되어 있습니다.
개발플랫폼에 맞는 서버용 제품과 클라이언트용 제품을 선택하여 고객들에게 최고의 업로드 서비스를 제공하고 웹서버를
최대한 안정적으로 운영할 수 있습니다.
[서버용 업로드 컴포넌트]
동종 제품중에 가장 빠르고 안정적인 업로드 기능을 지원하며, 부가적으로 다양한 이미지프로세싱 처리를 지원합니다.
- DEXTUpload Professional - ASP 컴포넌트(ATL COM)로 IIS기반의 ASP 프로젝트에서 사용
- DEXTUpload.NET Professional - 어셈블리로 IIS기반의 ASP.NET 프로젝트에서 사용
- DEXTUploadJ - Java 컴포넌트로 Servlet 엔진이 지원되는 JSP 프로젝트에서 사용
[클라이언트용 업로드 컴포넌트]
서버용 업로드 컴포넌트에서 구현이 어려운 기능들과 사용자에게 편리한 다양한 인터페이스를 제공합니다.
- DEXTUploadX : ActiveX 컨트롤로 ActiveX가 지원되는 모든 브라우저
- DEXTUploadFL : Flash & AIR 컨트롤로 Cross-Platform, Cross-Browser 지원
- DEXTUploadNX : 웹브라우저 Plug-in(NPAPI) 기반 컨트롤로 Windows, Cross-Browser 지원
[대용량 통합 업로드 컴포넌트]
서버용 업로드 컴포넌트와 클라이언트용 업로드 컴포넌트를 통합하여 더욱 강력한 파일업로드 기능과 함께
대용량 파일 업로드 서비스를 구현할 수 있습니다.
- DEXTUpload Pro Extension : Windows/IIS 환경의 ASP프로젝트에서 사용, ActiveX 컨트롤 포함
- DEXTUpload.NET Extension : Windows/IIS 환경의 ASP.NET프로젝트에서 사용, ActiveX 컨트롤 포함
[HTML5(Non-ActvieX) 대용량 업로드 컴포넌트]
서버용 업로드컴포넌트와 HTML5 업로드컴포넌트를 조합하여 별도의 Active-X설치없이도
대용량업로드, 다중업로드, Drag & Drop 등의 기능을 자유롭게 사용 가능합니다.
- DEXTUpload Pro + DEXTUpload X5 : Windows/IIS 환경의 ASP 프로젝트에서 사용
- DEXTUpload.NET Pro + DEXTUpload X5 : Windows/IIS 환경의 ASP.NET 프로젝트에서 사용
- DEXTUploadNJ + DEXTUpload X5 : Java 환경 프로젝트에서 사용 (Servlet, JSP)