Home > IE 버전 > EXIF
이미지 파일의 EXIF 정보를 얻는 예제입니다.
설명

EXIF 데이터를 지원하는 이미지 파일의 경우 EXIF 정보를 추출할 수 있습니다.

// EXIF 정보를 추출되도록 설정해야 합니다. 
dx.setExtractingEXIF(true);

var item = dx.getItemByIndex(0);
// 0번째 파일의 exif 문자열 정보를 얻습니다.
alert(item.exif);

EXIF 정보는 '[SPLT]' 문자열로 구분되어 있습니다.

키=값 형식으로 얻기 위해서는 exif 속성 값을 파싱 해야 합니다.

주의) EXIF는 모든 이미지 형식이 지원하는 데이터가 아닙니다.

function parseExif(data) {
  if (!data) return "";
  // 구분자를 얻습니다. 기본값은 '[SPLT]'입니다.
  var splitter = dx5.get("dext5").getSplitString();
  var tokens = data.split(splitter);
  var str = "";
  for (var i = 0, len = tokens.length; (i + 1) < len; i += 2) {
    str += "  " + tokens[i] + ": " + tokens[i + 1] + ((i + 1) < len ? "\n" : "");
  }

  return str;
}

서버에는 DEXTUploadX5_EXIFData 폼 이름으로 EXIF 정보가 전달됩니다.

# 서버 측 설정입니다.						
...
List<FileItem> items = dextnj.getFileItems();
			
// FileUpload#getFormItems 메소드를 사용하여 폼 이름으로 클라이언트에서 전달된 EXIF 콜렉션 객체를 얻을 수 있습니다.
List<FormItem> exifs = dextnj.getFormItems("DEXTUploadX5_EXIFData");
			
StringBuffer sb = new StringBuffer();	
			
FileItem file = null;
FormItem form = null;
String[] tokens = null;
StringBuffer exif = new StringBuffer();
			
for (int i = 0; i < items.size(); i++) {
  file = items.get(i);
  form = exifs.get(i);
				
  if (file.isEmpty() == false) {
    file.save();
					
    tokens = form.getValue().split("\\[SPLT\\]");
					
    exif.delete(0, exif.length());
    for (int k = 0, len = tokens.length; (k + 1) < len; k += 2) {
      exif.append(String.format("%1$s:%2$s\n", tokens[k], tokens[k + 1]));
    }
    ...
  }
}
...
예제

JPG 이미지 파일 1개만 등록할 수 있도록 필터 처리가 되었습니다.