From f1c7b8b2b01512ee243f0c493932d325af0afd76 Mon Sep 17 00:00:00 2001 From: rajatgarg Date: Sun, 3 Sep 2023 03:59:20 +0530 Subject: [PATCH] Add getting Extension from MIME type of a file --- core-java-modules/core-java-io/pom.xml | 11 +++++ .../ExtensionFromMimeTypeUnitTest.java | 47 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 core-java-modules/core-java-io/src/test/java/com/baeldung/extension/ExtensionFromMimeTypeUnitTest.java diff --git a/core-java-modules/core-java-io/pom.xml b/core-java-modules/core-java-io/pom.xml index 59952c2d9e..53762d7547 100644 --- a/core-java-modules/core-java-io/pom.xml +++ b/core-java-modules/core-java-io/pom.xml @@ -43,6 +43,17 @@ ${angus-activation.version} test + + org.jodd + jodd-util + 6.2.1 + + + com.j256.simplemagic + simplemagic + 1.17 + + diff --git a/core-java-modules/core-java-io/src/test/java/com/baeldung/extension/ExtensionFromMimeTypeUnitTest.java b/core-java-modules/core-java-io/src/test/java/com/baeldung/extension/ExtensionFromMimeTypeUnitTest.java new file mode 100644 index 0000000000..0a22e2defb --- /dev/null +++ b/core-java-modules/core-java-io/src/test/java/com/baeldung/extension/ExtensionFromMimeTypeUnitTest.java @@ -0,0 +1,47 @@ +package com.baeldung.extension; + +import static org.junit.Assert.assertEquals; +import java.util.HashMap; +import java.util.Map; + +import org.apache.tika.mime.MimeType; +import org.apache.tika.mime.MimeTypeException; +import org.apache.tika.mime.MimeTypes; +import org.junit.Test; + +import com.j256.simplemagic.ContentInfo; + +public class ExtensionFromMimeTypeUnitTest { + public static final String PNG_EXT = "image/png"; + @Test + public void whenUsingTika_thenGetFileExtension() throws MimeTypeException { + MimeTypes allTypes = MimeTypes.getDefaultMimeTypes(); + MimeType type = allTypes.forName(PNG_EXT); + String extension = type.getExtension(); + assertEquals(".png", extension); + } + + @Test + public void whenUsingJodd_thenGetFileExtension() { + String fileExtension = jodd.net.MimeTypes.findExtensionsByMimeTypes(PNG_EXT,false)[0]; + assertEquals("png", fileExtension); + } + + @Test + public void whenUsingMimetypesFileTypeMap_thenGetFileExtension() { + ContentInfo contentInfo = new ContentInfo("", PNG_EXT, "", true); + String[] fileExtensions = contentInfo.getFileExtensions(); + assertEquals("png", fileExtensions[0]); + } + + @Test + public void whenUsingCustomLogic_thenGetFileExtension() { + Map mimeToExtensionMap = new HashMap<>(); + mimeToExtensionMap.put("application/pdf", "pdf"); + mimeToExtensionMap.put("image/jpeg", "jpg"); + mimeToExtensionMap.put("image/png", "png"); + String fileExtension = mimeToExtensionMap.get(PNG_EXT); + if (fileExtension!= null) + assertEquals("png", fileExtension); + } +}