대용량 파일 업로드

Home > 대용량 파일 업로드 > 예제 01

설명

대용량 파일 업로드는 개별 파일이 2GB가 넘더라도 전송할 수 있는 기능이다.

이와 달리, 업로드할 총 파일의 크기(기타 데이터 포함)가 2GB가 넘지 않는다면 굳이 대용량 파일 업로드를 사용할 필요 없다.

일반 업로드의 경우 10개의 파일 있을 때, ORAF는 한 번의 전송으로 10개의 파일을 모두 전송하며, OROF 모드로 업로드를 하면, 개별 전송이기 때문에 10회 전송한다.

이와 달리 대용량 파일 업로드는 OROF처럼 개별 파일마다 전송을 할 뿐만 아니라 개별 파일을 정해진 크기로 나눈 청크(블록) 단위로 서버에 전송하기 때문에, 최소 20회 이상의 전송 작업이 필요하다.

// 파일 업로드를 처리할 경로를 설정한다.
dx.setUploadURL("http://../service/extension-upload.asp");
// 대용량 파일 업로드 방식을 사용하려면 EXTS로 설정한다.
dx.setUploadMode("EXTS");
// 파일을 쪼갤 블록 크기를 byte 단위로 설정한다.
dx.setUploadBlockSize(10 * 1024 * 1024);

이 구조는 upload-service.asp 페이지에서 파일 업로드를 처리하고, 폼 데이터는 form-service-multi.asp 페이지에서 최종적으로 처리한다.

# 서버 측 설정이다.

//파일 콜렉션을 얻는다.
set oFiles = oDextpro("DEXTUploadX5_FileData") 

for idx = 1 to oFiles.Count
    set oItem = oFiles(idx)
    oItem.Save(defaultFolder)
    //일반적으로 파일을 저장한 후, 파일 정보를 데이터베이스에 기록한다.
    //샘플에서는 DB를 사용하기 어렵기 때문에, 저장된 파일 정보를 클라이언트 응답 데이터에 실어 보낸 후,
    //폼을 처리하는 코드에서 다시 받도록 구성했다.
    sb = sb & oItem.FileName & ";" & CStr(oItem.FileLen) & ";" & oItem.LastSavedFilePath & vbCrLf
    set oItem = nothing
next

예제