File file = new File(path + fileName); file.toURL().openConnection().getContentType(); // 1 URLConnection.guessContentTypeFromName(orgFile.getName()); // 2 URLConnection.guessContentTypeFromStream(new BufferedInputStream(new FileInputStream(orgFile))); // 3 new MimetypesFileTypeMap().getContentType(orgFile); // 4 Files.probeContentType(Paths.get(orgFile.toURI())); // 5
위의 방법으로 엑셀 2007 형식의 파일을 분석했을때 오피스가 설치된 pc와 설치되지 않은 pc에서 각각 다른 반응을 보였다.
1. 설치된 pc
1 >>>>>>content/unknown
2 >>>>>>null
3 >>>>>>null
4 >>>>>>application/octet-stream
5 >>>>>>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
2. 설치되지 않은 pc
1 >>>>>>content/unknown
2 >>>>>>null
3 >>>>>>null
4 >>>>>>application/octet-stream
5 >>>>>>null
5번이 가장 정확한 내용을 알려주지만 경우에 따라서 null이 나올 수도 있으므로 4번이 가장 무난한 선택일수도 있겠다.
'Java' 카테고리의 다른 글
mybatis의 insert후 sequence 가져오기 (0) | 2014.08.21 |
---|---|
MS-SQL JDBC 추가하기. (0) | 2014.07.28 |
JSTL에서 substring, length (0) | 2013.09.26 |
EL 함수 추가하기 (0) | 2013.09.10 |
Apache POI 추가 (0) | 2013.08.22 |