Repository navigation
Expand file tree
/
Copy pathMimeType.java
More file actions
79 lines (69 loc) · 2.37 KB
/
Copy pathMimeType.java
File metadata and controls
79 lines (69 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package org.javawebstack.httpserver.util;
import java.util.Arrays;
import java.util.List;
public enum MimeType {
HTML("text/html", "html", "htm"),
XHTML("application/xhtml+xml", "xhtml"),
CSS("text/css", "css"),
JS("application/javascript", "js"),
JSON("application/json", "json"),
PDF("application/pdf", "pdf"),
XML("application/xml", "xml"),
X_WWW_FORM_URLENCODED("application/x-www-form-urlencoded"),
OCTET_STREAM("application/octet-stream", ".bin", ".file", ".com", ".class", ".ini"),
ZIP("application/zip", "zip"),
PNG("image/png", "png"),
JPG("image/jpeg", "jpg", "jpeg"),
SVG("image/svg+xml", "svg"),
ICO("image/x-icon", "ico"),
PLAIN("text/plain", "txt"),
MP4("video/mp4", "mp4"),
MP3("audio/mpeg", "mp3"),
WAV("audio/wav", "wav"),
OGG("audio/ogg", "ogg"),
YAML(new String[]{"text/yaml", "text/x-yaml", "application/yaml", "application/x-yaml"}, "yaml", "yml");
MimeType(String mimeType, String... extensions) {
this(new String[]{mimeType}, extensions);
}
MimeType(String[] mimeTypes, String... extensions) {
this.mimeTypes = Arrays.asList(mimeTypes);
this.extensions = Arrays.asList(extensions);
}
final List<String> mimeTypes;
final List<String> extensions;
public List<String> getMimeTypes() {
return mimeTypes;
}
public List<String> getExtensions() {
return extensions;
}
public static MimeType byExtension(String extension) {
if (extension.startsWith("."))
extension = extension.substring(1);
for (MimeType type : values()) {
if (type.extensions.contains(extension)) {
return type;
}
}
return null;
}
public static MimeType byMimeType(String mimeType) {
for (MimeType type : values()) {
if (type.mimeTypes.contains(mimeType)) {
return type;
}
}
return null;
}
public static MimeType byFileName(String fileName) {
if (fileName.contains("/")) {
String[] spl = fileName.split("/");
fileName = spl[spl.length - 1];
}
if (!fileName.contains("."))
return PLAIN;
String[] spl = fileName.split("\\.");
MimeType type = byExtension(spl[spl.length - 1]);
return type != null ? type : PLAIN;
}
}