在Workplace XT的 SelectFileWorker 的 setUploadedFile 方法中, 使用了两种获得mime_type的方法:
1. ServletContext.getMimeType
在 Java 语言中,此方法返回指定文件的 MIME 类型;如果其 MIME 类型未知,则返回 NULL。MIME 类型
是由 servlet 容器的配置确定的,而且可以在 Web 应用程序部署说明符中指定。常见的 MIME 类型是
text/html 和 image/gif。
Web 应用程序部署说明符指定方式如下:
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
2. MimetypesFileTypeMap
MimetypesFileTypeMap MIME_TYPES_MAP = new MimetypesFileTypeMap();
MIME_TYPES_MAP.getContentType("###");
此类扩展 FileTypeMap 并通过其文件扩展名提供文件的数据分类。它使用 .mime.types 格式。
MIME 类型文件搜索顺序:
MimetypesFileTypeMap 在用户系统的不同位置查找 MIME 类型文件条目。当发出在 MimetypesFileTypeMap 中搜索 MIME 类型的请求时,它将按以下顺序搜索 MIME 类型文件:
以编程方式添加到 MimetypesFileTypeMap 实例的条目。
用户主目录中的 .mime.types 文件。
<java.home>/lib/mime.types 文件。
名为 META-INF/mime.types 的文件或资源。
名为 META-INF/mimetypes.default 的文件或资源(通常只存在于 activation.jar 文件中)。
MIME 类型文件格式:
# 注释以 '#' 开头
# 格式是 <mime 类型> <以空格分隔文件扩展名>
# 例如:
text/plain txt text TXT
# 这将 file.txt、file.text 和 file.TXT 映射到
# mime 类型 "text/plain"