我在将Mimetypes添加到MimetypesFileTypeMap时遇到问题。我已经尝试添加META-INF/mime.types文件,就像Documentation所说的那样。但MimetypesFileTypeMap似乎没有读取它。
我想念什么吗?
这是一个Spring/Maven Web项目。任何帮助,将不胜感激!
甚至是陌生人的观点。一天,一个路人(Andrew T.)对MIME类型进行了一些调查,并在MimetypesFileTypeMap
JavaDocs中发现了此文档。
MIME类型文件搜索顺序:MimetypesFileTypeMap
在用户系统的各个位置查找MIME类型的文件条目。当请求在MimetypesFileTypeMap
中搜索MIME类型时,它将按以下顺序搜索MIME类型文件:
MimetypesFileTypeMap
实例。 .mime.types
文件。 <java.home>/lib/mime.types
。 META-INF/mime.types
的文件或资源。 META-INF/mimetypes.default
的文件或资源(通常仅在activation.jar
文件中找到)。 (A) (A)如code posted by jwrobel所示,Jar实际上似乎是至少两个系统(带有JDK)上的
resources.jar
。 因此,鉴于此来源。
import java.io.File;
import javax.activation.MimetypesFileTypeMap;
class TestMime {
public static void main(String[] args) {
System.out.println(System.getProperty("java.version"));
File f = new File(System.getProperty("java.home"), "lib");
f = new File(f, "mime.types");
System.out.println(f.exists() + " \t - " +f);
f = new File(System.getProperty("user.home"), ".mime.types");
System.out.println(f.exists() + " \t - " +f);
MimetypesFileTypeMap mfm = new MimetypesFileTypeMap();
System.out.println(mfm.getContentType("a.js"));
System.out.println(mfm.getContentType("a.png"));
System.out.println(mfm.getContentType("a.jpg"));
System.out.println(mfm.getContentType("a.au"));
System.out.println(mfm.getContentType("a.htm"));
}
}
..我们可以排除以编程方式添加的“1”。如果我们从命令行在类路径上没有META-INF
,没有activation.jar
的目录中运行它,我们也会忘记4和5。仅留下选项2和3。但是此来源的输出是..
1.6.0
false - C:\Program Files\Java\jdk1.6.0\jre\lib\mime.types
false - C:\Users\Andrew\.mime.types
application/octet-stream
application/octet-stream
image/jpeg
audio/basic
text/html
Press any key to continue . . .
IE。这两个文件上的false
结果(可能是文件字符串显示的MIME映射的源)建议了最后两个信息源。不存在。那么信息从何而来呢? 最佳答案
Spring提供了a wrapper class,它附带了一个更新的MIME类型列表。使用它的方式与使用MimetypesFileTypeMap的方式几乎相同。
import org.springframework.mail.javamail.ConfigurableMimeFileTypeMap;
...
ConfigurableMimeFileTypeMap mimeMap = new ConfigurableMimeFileTypeMap();
String contentType = mimeMap.getContentType(uploadedName);//defaults to application/octet-stream
关于java - 将Mimetypes添加到MimetypesFileTypeMap,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6308142/