У меня возникли проблемы с добавлением Mimetypes в MimetypesFileTypeMap. Я попытался добавить файл META-INF/mime.types, как это описано в Документация. но не похоже, что он читается MimetypesFileTypeMap.
Я что-то упустил?
Это веб-проект Spring/Maven. Любая помощь будет оценена!
Даже странная боковая точка. Прохожий (Andrew T.) проводил некоторое исследование типов MIME только на днях и обнаружил эту документацию в MimetypesFileTypeMap
JavaDocs.
Порядок поиска файлов MIME:
MimetypesFileTypeMap
выглядит в разных местах в пользовательской системе для файлов файлов MIME. Когда запросы выполняются для поиска MIME-типов в MimetypesFileTypeMap
, он ищет файлы типов MIME в следующем порядке:
- Программно добавленные записи в экземпляр
MimetypesFileTypeMap
. - Файл
.mime.types
в домашнем каталоге пользователя. - Файл
<java.home>/lib/mime.types
. - Файл или ресурсы с именем
META-INF/mime.types
. - Файл или ресурс с именем
META-INF/mimetypes.default
(обычно находится только в файлеactivation.jar
). (А)
(A) Как показано кодом опубликованным jwrobel, Jar фактически кажется resources.jar
по меньшей мере в двух системах (с JDKs).
Так что данный источник..
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" - программно добавлено. Мы также можем забыть 4 и 5, если мы запустим его из командной строки в каталоге без META-INF
, no activation.jar
на пути к классу. Который оставляет только варианты 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 . . .
т.е. Результат false
для обоих файлов, которые могут быть источником MIME-сопоставлений, показанных для строк файла, предлагает те два последних источника информации. не существует. Итак, где heck - информация, поступающая из?