설명
드래그&드롭 및 폴더 다이얼로그를 통하여 선택된 폴더를 기준으로, 하위 폴더 정보까지 서버로 Form 데이터 형식으로 전달된다.
서버에서는 DEXTUploadX5_Folder 이름으로 정보를 얻을 수 있다.
# 서버 측 설정이다.
...
'임시 파일이 생성될 경로
tempFolder = Request.ServerVariables("APPL_PHYSICAL_PATH") & "files\temp"
'저장하고자 하는 대상 경로
defaultFolder = Request.ServerVariables("APPL_PHYSICAL_PATH") & "files\store"
'폴더를 생성하기 위해서 fso 객체를 생성한다.
set fs = Server.CreateObject("Scripting.FileSystemObject")
'DEXTUpload Pro FileUpload 객체 생성
set oDextpro = server.CreateObject("DEXT.FileUpload")
oDextpro.AutoMakeFolder = TRUE
oDextpro.DefaultPath = tempFolder
oDextpro.CodePage = UTF8_CODEPAGE
'응답 데이터를 설정할 문자열 변수
sb = ""
'파일 콜렉션을 얻는다.
set oFiles = oDextpro("DEXTUploadX5_FileData")
'폴더 콜렉션을 얻는다.
set oFolders = oDextpro("DEXTUploadX5_Folder")
'파일 콜렉션과 폴더 콜렉션의 길이는 동일하다.
for idx = 1 to oFiles.Count
relativeFolder = Replace(oFolders(idx))
'폴더를 생성한다.
targetFolder = defaultFolder & "\" & relativeFolder
if not fs.FolderExists(targetFolder) then
fs.CreateFolder(targetFolder)
end if
set oItem = oFiles(idx)
oItem.Save(targetFolder)
sb = sb & oItem.LastSavedFilePath & vbCrLf
set oItem = nothing
next
...
폴더 구조 업로드 주의 사항은 다음과 같다.
DEXTUploadX5 3.6.0.0 버전 이상만 지원한다.
폴더 구조 업로드는 데스크탑 크로미움 계열 브라우저(80버전 이상), Firefox(50 버전 이상), Safari(12 버전 이상)만 지원한다.
파일이 없는 폴더는 제외된다.
예제