본문 바로가기
JAVA

MultipartHttpServletRequest 를 통한 업로드 된 multipart/form-data 파일 ContentType 확인 [MIME Type]

by Hwoarang757 2021. 8. 17.

MultipartHttpServletRequest 를  통한 업로드 된 multipart/form-data 파일 ContentType 확인 [MIME Type]

 

출처입니다 : https://github.com/devheedoo/TIW/blob/master/%5BJava%5D%20%ED%8C%8C%EC%9D%BC%20%EC%97%85%EB%A1%9C%EB%93%9C%20%EC%8B%9C%20MIME%20%ED%83%80%EC%9E%85%20%ED%99%95%EC%9D%B8.md

 

GitHub - devheedoo/TIW: Today I Worked

Today I Worked. Contribute to devheedoo/TIW development by creating an account on GitHub.

github.com

 

클라이언트에서 업로드 한 File의 Content-Type 확인 시에 Multipart/form-data로만 인지되어 ,

 

Tika Library를 이용한 File Type을 확인 하는 방안 입니다.

 

// 클라이언트에서 PNG 파일 업로드 시에 

MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
Map<String,MultipartFile> files = multiRequest.getFileMap();
            

Iterator<Entry<String,MultipartFile>> itr = files.entrySet().iterator();
MultipartFile file;


while(itr.hasNext()) {

file = entry.getValue();
// file 객체의 getContentType() 의 리턴 값의 경우 Multipart/form-data로 출력되었습니다.
//LOGGER.error(String.format("Content Type=[%s]", file.getContentType()));

//정확한 MIME TYPE을 확인하기 위하여 TIKA LIBRARY 사용 진행  
Tika tika = new Tika();
final String contentType = tika.detect(file.getInputStream());
LOGGER.error(String.format("Content[MIME] Type=[%s]", contentType));

// PNG 의 경우 
//[image/png] 로 출력되었으며
// JPG 의 경우
//[image/jpeg] 로 출력 되었습니다.
}