Список всех MimeTypes на планете, сопоставленных с расширениями файлов? [закрытый]


есть ресурс, в котором перечислены все типы в наличии?

Я нашел несколько мест с менее чем 1000 mimeTypes, но тогда они все еще не включают в себя общие, такие как .Рар. ,Флорида. ,рубидий. ,с треском!

есть ли у кого полный список MIME-типов? Не до самых навязчивых "только для компании", но, по крайней мере, все те, которые мы могли бы использовать.

кроме того, я ищу список, который сопоставляет расширения файлов с mimeTypes.

13 54

13 ответов:

http://www.iana.org/assignments/media-types/ перечисляет "официальные" MIME-типы, но это не мешает никому создавать свои собственные, не регистрируя их в IANA.

вот самый современный мим.типы, поддерживаемые сообществом Apache HTTPD: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/conf/mime.types?view=annotate

IANA перечисляет официальные. список, который включает в себя расширения файлов, которые я нахожу полезными, включен как /etc/mime.types в Debian и Ubuntu.

проект веб-сервера Apache также поддерживает список.

Я собрал типы MIME и расширения файлов из многих сайтов и списков, и вот результат:https://s-randomfiles.s3.amazonaws.com/mime/allMimeTypes.txt

Я также создал файл JSON:https://s-randomfiles.s3.amazonaws.com/mime/allMimeTypes.json

Пожалуйста, скажите мне, если что-то отсутствует или неправильно

iana отслеживает официальные, но, конечно, люди всегда могут заявить о собственных...

другими словами, сомнительно, что вы когда-нибудь получите полный список на планете.

также рассмотрим случай плагинов NPAPI, которые объявляют MIME-типы только для того, чтобы быть легко доступными... и эти мимы-типы могут быть вам не интересны по той или иной причине.

Если вы используете Java, вы можете использовать Apache Tika, который является мощной библиотекой для работы с типами файлов. С его помощью вы можете легко получить предпочтительное расширение, связанное с типом MIME с парой строк:

TikaConfig config = TikaConfig.getDefaultConfig();
MimeType mimeType = config.getMimeRepository().forName("image/png"); //Generally your textual mime type
String extension = mimeType.getExtension();
// this would return the extension with the dot. For "image/png" returns ".png"

таким образом, вам не нужно возиться с загрузкой и разбором файла с ассоциациями, я нахожу это очень удобным. Вот как я проделал этот трюк.

есть хорошая таблица типов Mime, которую вы можете найти на https://drive.google.com/open?id=0By00BwrZ8886VUg3ak9faG5mTU0 Который обновляется 27-02-2017. Я уверен, что удовлетворить все ваши потребности мим типа.

есть хорошая таблица в классической книге" HTTP: The Definitive Guide " Гурли и Тотти (O'Reilly, с белкой на обложке) в приложении D. Она кажется полной и актуальной на момент написания книги (в 2002 году). Это было давно, но вы найдете там все старые фавориты, а также неясные "только для компании".

ISBN 1-56592-509-2,http://oreilly.com/catalog/9781565925090/

вот полный список, который легко на глаз:

http://www.webmaster-toolkit.com/mime-types.shtml

этот список сайтов еще некоторые, такие как '.файлы DOCX' http://www.freeformatter.com/mime-types-list.html#mime-types-list

пользователь Paul Tarjan сказал в комментарии:

есть довольно хороший список stdicon.com : stdicon.com/mimetypes

этот сайт больше не доступен, но самый последний архив https://web.archive.org/web/20161015175648/http://www.stdicon.com/mimetypes

обратите внимание, что этот сайт не упоминает "application/x-zip-compressed" (и это не из-за выхода косых черт), поэтому это не так идеальный.

Я взял список из Apache mime.типы по состоянию на пт 29 сентября 15:10: 29 2017 UTC и написал скрипт для преобразования его в отображение json. Этот формат слишком большой для сайте StackOverflow ответ. Вы можете найти его здесь мимы.json.

скрипт для создания сопоставления:

# mime_to_json.py
# get the mime.types from
# http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/mime.types?view=markup

import sys
import re
import json

mapping = {}
with open(sys.argv[1], "r") as handle:
    for line in handle:
        line = line.strip()
        if line[0] == "#":
            continue
        parts = re.split("\s+", line)
        mime = parts[0]
        del parts[0]
        for ext in parts:
            mapping[ext] = mime

print(json.dumps(mapping, indent=4, sort_keys=True))

мой список (около 680 типов) mimetype в xml здесь