Skip to content

Commit f1c7b8b

Browse files
author
rajatgarg
committed
Add getting Extension from MIME type of a file
1 parent 29c9c5d commit f1c7b8b

2 files changed

Lines changed: 58 additions & 0 deletions

File tree

core-java-modules/core-java-io/pom.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,17 @@
4343
<version>${angus-activation.version}</version>
4444
<scope>test</scope>
4545
</dependency>
46+
<dependency>
47+
<groupId>org.jodd</groupId>
48+
<artifactId>jodd-util</artifactId>
49+
<version>6.2.1</version>
50+
</dependency>
51+
<dependency>
52+
<groupId>com.j256.simplemagic</groupId>
53+
<artifactId>simplemagic</artifactId>
54+
<version>1.17</version>
55+
</dependency>
56+
4657
</dependencies>
4758

4859
<build>
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.baeldung.extension;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
7+
import org.apache.tika.mime.MimeType;
8+
import org.apache.tika.mime.MimeTypeException;
9+
import org.apache.tika.mime.MimeTypes;
10+
import org.junit.Test;
11+
12+
import com.j256.simplemagic.ContentInfo;
13+
14+
public class ExtensionFromMimeTypeUnitTest {
15+
public static final String PNG_EXT = "image/png";
16+
@Test
17+
public void whenUsingTika_thenGetFileExtension() throws MimeTypeException {
18+
MimeTypes allTypes = MimeTypes.getDefaultMimeTypes();
19+
MimeType type = allTypes.forName(PNG_EXT);
20+
String extension = type.getExtension();
21+
assertEquals(".png", extension);
22+
}
23+
24+
@Test
25+
public void whenUsingJodd_thenGetFileExtension() {
26+
String fileExtension = jodd.net.MimeTypes.findExtensionsByMimeTypes(PNG_EXT,false)[0];
27+
assertEquals("png", fileExtension);
28+
}
29+
30+
@Test
31+
public void whenUsingMimetypesFileTypeMap_thenGetFileExtension() {
32+
ContentInfo contentInfo = new ContentInfo("", PNG_EXT, "", true);
33+
String[] fileExtensions = contentInfo.getFileExtensions();
34+
assertEquals("png", fileExtensions[0]);
35+
}
36+
37+
@Test
38+
public void whenUsingCustomLogic_thenGetFileExtension() {
39+
Map<String, String> mimeToExtensionMap = new HashMap<>();
40+
mimeToExtensionMap.put("application/pdf", "pdf");
41+
mimeToExtensionMap.put("image/jpeg", "jpg");
42+
mimeToExtensionMap.put("image/png", "png");
43+
String fileExtension = mimeToExtensionMap.get(PNG_EXT);
44+
if (fileExtension!= null)
45+
assertEquals("png", fileExtension);
46+
}
47+
}

0 commit comments

Comments
 (0)