public class ConfigurableMimeFileTypeMap extends FileTypeMap implements org.springframework.beans.factory.InitializingBean
FileTypeMap implementation that will read
MIME type to file extension mappings from a standard JavaMail MIME type
mapping file, using a standard MimetypesFileTypeMap underneath.
The mapping file should be in the following format, as specified by the Java Activation Framework:
# map text/html to .htm and .html files text/html html htm HTML HTMLines starting with
# are treated as comments and are ignored. All
other lines are treated as mappings. Each mapping line should contain the MIME
type as the first entry and then each file extension to map to that MIME type
as subsequent entries. Each entry is separated by spaces or tabs.
By default, the mappings in the mime.types file located in the
same package as this class are used, which cover many common file extensions
(in contrast to the out-of-the-box mappings in activation.jar).
This can be overridden using the mappingLocation property.
Additional mappings can be added via the mappings bean property,
as lines that follow the mime.types file format.
setMappingLocation(org.springframework.core.io.Resource),
setMappings(java.lang.String[]),
MimetypesFileTypeMap| Constructor and Description |
|---|
ConfigurableMimeFileTypeMap() |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet()
Creates the final merged mapping set.
|
protected FileTypeMap |
createFileTypeMap(org.springframework.core.io.Resource mappingLocation,
String[] mappings)
Compile a
FileTypeMap from the mappings in the given mapping file
and the given mapping entries. |
String |
getContentType(File file)
Delegates to the underlying FileTypeMap.
|
String |
getContentType(String fileName)
Delegates to the underlying FileTypeMap.
|
protected FileTypeMap |
getFileTypeMap()
Return the delegate FileTypeMap, compiled from the mappings in the mapping file
and the entries in the
mappings property. |
void |
setMappingLocation(org.springframework.core.io.Resource mappingLocation)
Specify the
Resource from which mappings are loaded. |
void |
setMappings(String[] mappings)
Specify additional MIME type mappings as lines that follow the
mime.types file format, as specified by the
Java Activation Framework, for example:text/html html htm HTML HTM |
getDefaultFileTypeMap, setDefaultFileTypeMappublic void setMappingLocation(org.springframework.core.io.Resource mappingLocation)
Resource from which mappings are loaded.
Needs to follow the mime.types file format, as specified
by the Java Activation Framework, containing lines such as:
text/html html htm HTML HTM
public void setMappings(String[] mappings)
mime.types file format, as specified by the
Java Activation Framework, for example:text/html html htm HTML HTMpublic void afterPropertiesSet()
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanprotected final FileTypeMap getFileTypeMap()
mappings property.protected FileTypeMap createFileTypeMap(org.springframework.core.io.Resource mappingLocation, String[] mappings) throws IOException
FileTypeMap from the mappings in the given mapping file
and the given mapping entries.
The default implementation creates an Activation Framework MimetypesFileTypeMap,
passing in an InputStream from the mapping resource (if any) and registering
the mapping lines programmatically.
mappingLocation - a mime.types mapping resource (can be null)mappings - MIME type mapping lines (can be null)IOException - if resource access failedMimetypesFileTypeMap.MimetypesFileTypeMap(java.io.InputStream),
MimetypesFileTypeMap.addMimeTypes(String)public String getContentType(File file)
getContentType in class FileTypeMapgetFileTypeMap()public String getContentType(String fileName)
getContentType in class FileTypeMapgetFileTypeMap()