Complete MIME Types List - FreeFormatter.com
implementation 'org.apache.tika:tika-core:2.5.0'
public class MimeTypeExample {
public static void main(String[] args) {
Tika tika = new Tika();
// 파일 경로
File file = new File("path/to/file");
try {
// MIME 타입 체크
String mimeType = tika.detect(file);
System.out.println("MIME 타입: " + mimeType);
} catch (IOException e) {
e.printStackTrace();
}
}
}
png
인 이미지를 검사하면 image/png
같이 MIME Type을 확인할 수 있다.그런데
MultipartFile
의getContentType()
메서드를 사용하면 MIME Type을 확인할 수 있다
게다가 Spring에서 기본으로 제공하기 때문에 따로 종속성을 추가하지 않고 사용이 가능하다
@Controller
public class FileUploadController {
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
String contentType = file.getContentType();
System.out.println("MIME 타입: " + contentType);
return "redirect:/success";
} else {
return "redirect:/error";
}
}
}
image/png
같은 형식의 MIME Type을 반환한다.그럼 이 둘의 차이는 뭘까?
확장자가 파일 이름에 없을 때
detect()
메서드만 정확한 MIME Type을 반환한다.정확한 MIME Type 확인이 요구될 때엔 Tika를 사용하는 것이 좋아 보인다.