Как назначить (установить) тип MIME для файла?
Есть ли команда, которая может установить MIME-тип файла? например:
mime --set --MIME="image/pjpeg" filename.jpg
2 ответа
Вопрос уже ответил @PHPLearner
в своем комментарии сам. Однако, ради Ответа, Здесь Это идет.
Там нет конкретной команды как таковой mime
как задано в вопросе, и, без сомнения, одна такая команда может быть создана. Для добавления нового типа MIME достаточно всего лишь отредактировать /etc/mime.types
файл.
Допустим, вы хотите добавить MIME-тип с расширением .btc
, затем
1. Проверьте, существует ли тип MIME
Откройте командную строку и введите строку ниже. (заменить btc
с твоим расширением)
$ grep 'btc' /etc/mime.types
Теперь эта команда выведет строку, если этот тип MIME уже добавлен. Похоже, это для конкретных поисков MIME
$ grep 'cpp' /etc/mime.types
text/x-c++src c++ cpp cxx cc
$ grep 'py' /etc/mime.types
application/x-python-code pyc pyo
text/vnd.debian.copyright
text/x-python py
$ grep 'btc' /etc/mime.types
Если ваше расширение не выводит никаких строк (как для btc
в этом случае), или если в выдаваемых строках нет вашего расширения, вы должны создать новый тип MIME. В противном случае ваше расширение уже имеет тип MIME, включенный в файл /etc/mime.types.
2.1 Создание типа MIME (если требуется)
Если выходных данных не было или данные не содержали вашего расширения, мы должны добавить тип MIME. Для этого типа в командной строке
$ gksudo gedit /etc/mime.types
Измените следующий текст, чтобы слово "расширение" заменялось расширением вашего файла. (no period mark)
, добавьте строку в конец файла mime.types и сохраните. Здесь наше расширение - биткойн, и мы пишем btc (NOT .btc)
это будет рассматриваться как расширение для файлов биткойнов.
text/extension extension
И скопируйте измененную часть "текст / расширение".
В нашем случае это будет выглядеть так
text/bitcoin-text btc
Сохраните файл и выйдите.
2.2 Добавление MIME-типа с помощью .xml
файл и update-mime-database
Если редактирование /etc/mime.types
файл не работает для вашего расширения, тогда вы можете попробовать этот обходной путь.
Создать новый .xml
файл, который описывает ваше расширение, как это и сохранить его.
<?xml version="1.0" encoding="utf-8"?>
<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/bitcoin-text">
<glob pattern="*.btc"/>
</mime-type>
Теперь добавьте этот файл в /usr/share/mime/application
Папка. После того, как вы добавили или изменили все, что вам нужно, выполните команду
$ sudo update-mime-database / usr / share / mime
3. Добавление иконки в MIME-тип
Теперь нам нужно связать значок с типом MIME. Получите значок SVG и назовите его "text-extension.svg", или как бы вы ни назвали ваш измененный тип MIME; это будет значок для представления всех экземпляров типа MIME в вашей системе.
Итак, мы переименовываем файл.svg, чтобы он соответствовал bitcoin-text.svg (или "insertYourMIMEtype.svg"), чтобы slashes are replaced with "-"
и здесь no capital letters
,
Затем просто выполните следующие команды, заменив "биткойн-текст" на ваш тип MIME.
$ sudo cp bitcoin-text.svg /usr/share/icons/gnome/scalable/mimetypes
$ sudo gtk-update-icon-cache /usr/share/icons/gnome/ -f
Relogin и все файлы, заканчивающиеся расширением MIME, будут отображаться с этим значком.
Чтобы на самом деле ответить на ваш вопрос: типы MIME не настоящие. В файле нет части метаданных, в которой говорится, что «это изображение / png». Вместо этого типы MIME угадываются на основе расширения файла и магического числа. Чтобы файл имел определенный тип MIME, вам необходимо соответствующим образом настроить веб-сервер. См. https://stackoverflow.com/questions/29017725/how-do-you-change-the-mime-type-of-a-file-from-the-terminal .