DEXTUploadX5 대용량 파일 업로드 완벽 가이드 (초보자용)

소개

안녕하세요! 오늘은 DEXTUploadX5를 사용하여 2GB 이상의 대용량 파일을 업로드하는 방법에 대해 알아보겠습니다. 대용량 파일은 전송 중 끊길 위험이 높기 때문에 일반적인 업로드와는 다른 특별한 처리 방식이 필요합니다. 초보자분들도 쉽게 이해하고 적용하실 수 있도록 핵심만 짚어서 설명해 드릴게요!

1. 💡 대용량 파일 업로드란?

DEXTUpload 제품군에서 2GB 이상의 크기를 가지는 파일을 업로드하는 것을 ‘대용량 파일 업로드’라고 부릅니다. 핵심은 파일을 통째로 보내는 것이 아니라, 일정 크기(청크)로 잘게 쪼개서 여러 번 나누어 전송한다는 점입니다.

  • 안정성 확보: 중간에 네트워크가 끊겨도 전송이 실패한 조각부터 다시 전송하는 이어올리기가 기본적으로 지원됩니다.
  • 요청 수 증가: 예를 들어 2.5GB 파일을 10MB 크기로 쪼개서 전송한다면 약 2,500번의 서버 요청이 발생합니다. 이는 정상적인 동작입니다.

2. ⚙️ 클라이언트(브라우저) 측 설정 (DEXTUploadX5)

대용량 업로드를 위해서는 업로드 모드를 변경하고 파일을 분할할 크기를 지정해야 합니다.

// 컴포넌트 생성 완료 이벤트에서 설정합니다.
function onDX5Created(id) {
    var dx = dx5.get(id);

    // 1. 업로드 경로를 설정합니다.
    dx.setUploadURL("http://domain/path/extension-upload.do");

    // 2. 업로드 방식을 대용량 전용 모드(EXTS)로 설정합니다.
    dx.setUploadMode("EXTS");

    // 3. 파일을 분할하는 블록 크기를 바이트 단위로 설정합니다. (예: 10MB)
    dx.setUploadBlockSize(10 * 1024 * 1024);
}

3. 🖥️ 서버 측 설정 (예: DEXTUploadNJ)

쪼개져서 서버로 들어오는 수많은 파일 조각들을 하나로 합치는 복잡한 작업은 서버 컴포넌트(DEXTUploadNJ 등)가 알아서 자동으로 처리해 줍니다. 개발자님은 완전히 합쳐진 최종 파일을 원하는 위치로 이동(저장)시키기만 하면 됩니다.

  • web.xmlExtensionFileUploadFilter를 등록하기만 하면 필터 단에서 파일 조각들을 임시 폴더에 알아서 병합합니다.
  • 병합이 완료되면 개발자님의 컨트롤러나 서블릿으로 제어가 넘어오며, 여기서 item.save() 함수를 호출하여 최종 저장 위치만 지정해주면 끝납니다.

4. ⚠️ 구현 시 반드시 유의해야 할 점 (유의사항)

  • 단독 처리 불가: 대용량 파일 업로드는 DEXTUploadX5 단독으로는 불가능합니다. 반드시 DEXTUploadNJ(Java) 등 자사의 서버 컴포넌트 제품과 연동해야만 동작합니다.
  • Spring Framework 충돌 주의: Spring 환경에서 구현하실 때, 기존에 설정된 CommonMultipartResolver 또는 StandardServletMultipartResolver가 있다면 제거해야 합니다. (DEXTUploadNJ 2.6.0 버전 이상에서는 전용 Spring 필터를 제공하므로 설정 충돌을 쉽게 피할 수 있습니다.)
  • 응답(Response) 처리: 파일 조각이 모두 전송되고 조립이 끝나면, 서버에서 응답을 반환합니다. onDX5UploadCompleted 이벤트는 전체 업로드가 끝났을 때 단 한 번만 호출되므로, 이 안에서 getResponses() 함수를 사용해 개별 파일의 서버 응답 데이터를 배열 형태로 확인해야 합니다.
  • 다운로드 파일 크기 제한 점검: 대용량 파일을 성공적으로 업로드하도록 구현했다면, 추후 사용자가 해당 파일을 정상적으로 내려받을 수 있어야 합니다. 매뉴얼의 ‘다운로드하기’ 설정 부분을 반드시 참고하시어, 컴포넌트나 서버의 다운로드 파일 크기 제한(Limit)이 업로드할 대용량 파일 크기보다 작게 설정되어 있지 않은지(또는 무제한인지) 꼭 확인해 주세요.

제품소개 페이지 : https://www.dextsolution.com/product/uploadX5_01.aspx
문의처 : info@dextsolution.com , 대표번호 : 02-6719-6200

Similar Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다