Как назначить (установить) тип 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 .

Другие вопросы по тегам