Home > IE 버전 > 메타데이터
메타 데이터를 다루는 예제입니다.
설명

메타 데이터는 로컬 파일에서만 사용할 수 있는 부가 데이터로써 '키=값' 형식으로 등록이 됩니다.

메타 데이터를 등록하려면, 로컬 파일의 인덱스(순서)를 이용하여 이름과 값을 등록합니다.

var dx = dx5.get("컴포넌트 아이디");

// 6번째 항목의 메타 데이터 중 "user" 키에 대한 값을 반환합니다.
var userValue = dx.getMetaDataByIndex(5, "user");

// 6번째 항목의 메타 데이터 중 "user" 키에 대한 값을 "홍길동"으로 설정합니다.
dx.setMetaDataByIndex(5, "user", "홍길동");

// 6번째 항목의 메타 데이터 중 "user" 키를 삭제합니다.
dx.deleteMetaDataByIndex(5, "user");

메타 데이터는 로컬 파일이 업로드가 될 때, 함께 서버로 전달됩니다.

서버 측 코드에서는 "DEXTUploadX5_MetaData" 폼 이름으로 전달이 되므로 폼 데이터로부터 메타 데이터를 얻을 수 있습니다.

"DEXTUploadX5_MetaData" 폼 이름으로 전달되는 메타 데이터는 업로드되는 파일의 순서를 따릅니다.

# 서버 측 설정입니다.						
						
List<FileItem> items = dextnj.getFileItems();

// FileUpload#getFormItems 메소드를 사용하여 폼 이름으로 클라이언트에서 전달된 메타 데이터 콜렉션 객체를 얻을 수 있습니다.
List<FormItem> metadata = dextnj.getFormItems("DEXTUploadX5_MetaData");

StringBuffer sb = new StringBuffer();	

FileItem file = null;
FormItem form = null;
	
for (int i = 0; i < items.size(); i++) {
  file = items.get(i);
  form = metadata.get(i);

  if (file.isEmpty() == false) {
    file.save();
    
    // 메타데이터와 저장된 파일의 위치를 응답 데이터 버퍼에 기록합니다.
    sb.append(String.format("F:%1$s, M:%2$s\n", file.getFilename(), form.getValue()));
  }
}  
...

하나의 파일에 여러 메타 데이터가 있을 경우, 서버로 전달되는 메타 데이터는 key1=value1[SPLT]key2=value2[SPLT]key3=value3 포맷이 아니라,
key1[SPLT]value1[SPLT]key2[SPLT]value2[SPLT]key3[SPLT]value3 포맷으로 전달됩니다.

데이터를 얻으려면 "[SPLT]" 문자열로 토큰을 분리한 후, 홀수번 째는 키, 짝수번 째는 값으로 사용합니다.

예제

파일을 추가한 후 업로드 버튼을 클릭하면 파일이 업로드됩니다.

메타 데이터는 로컬 파일에만 적용됩니다. 테스트하려면 로컬 파일을 추가하세요.