如何为文件分配(设置) MIME 类型?

如何为文件分配(设置) MIME 类型?

是否有任何命令可以设置文件的 MIME 类型?例如:

mime --set --MIME="image/pjpeg" filename.jpg  

答案1

问题是已经回答@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

修改以下文本,将“extension”一词替换为您的文件扩展名(无句点标记),将该行添加到文件末尾mime.types,然后保存。此处我们的扩展名是 bitcoin,我们写入btc(不是 .btc),这将被视为 bitcoin 文件的扩展名。

text/extension                   extension

并复制修改后的‘text/extension’部分。

在我们的例子中它看起来像

text/bitcoin-text                btc

保存文件并退出。

.xml2.2 使用文件和添加 MIME 类型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">
<mime-info type="text/bitcoin-text">
<glob pattern="*.btc"/>
</mime-info>
</mime-type>

现在将此文件添加到/usr/share/mime/packages文件夹 (參考)添加或修改完所需内容后,运行命令

sudo update-mime-database /usr/share/mime

3. 为 MIME 类型添加图标

现在我们需要将图标与 MIME 类型关联起来。获取一个 SVG 图标并将其命名为“text-extension.svg”,或者您修改后的 MIME 类型名称;这将是代表系统上所有 MIME 类型实例的图标。

因此,我们重命名 .svg 文件,以便它匹配比特币文本.svg(或“insertYourMIMEtype.svg”),以便slashes are replaced with "-"和有no capital letters

然后只需运行以下命令,将“bitcoin-text”替换为您的 MIME 类型。

 sudo cp bitcoin-text.svg /usr/share/icons/gnome/scalable/mimetypes
 sudo gtk-update-icon-cache /usr/share/icons/gnome/ -f

重新登录后,所有以 MIME 扩展名结尾的文件都将显示该图标。

答案2

真正回答你的问题:MIME 类型不是真实的。文件中没有一些元数据表明“这是一个图像/png”。相反,MIME 类型是根据文件扩展名和魔法数字猜测的。要将文件作为具有特定 MIME 类型的文件提供,你需要适当地配置你的网络服务器。请参阅https://stackoverflow.com/questions/29017725/how-do-you-change-the-mime-type-of-a-file-from-the-terminal

相关内容