【问题标题】:如何找出文件的 MIME 类型(Content-Type)?
【发布时间】:2011-01-14 16:37:16
【问题描述】:

有没有办法在 Linux bash 脚本中找出文件的 MIME 类型(或者称为“Content-Type”?)?

我需要它的原因是因为 ImageShack 似乎需要它来上传文件,因为某种原因它会将 .png 文件检测为 application/octet-stream 文件。

我检查了文件,确实是 PNG 图像:

$ cat /1.png 
?PNG
(with a heap load of random characters)

这给了我错误:

$ curl -F "fileupload=@/1.png" http://www.imageshack.us/upload_api.php
<links>
<error id="wrong_file_type">Wrong file type detected for file 1.png:application/octet-stream</error>
</links>

这可行,但我需要指定 MIME-TYPE。

$ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php

【问题讨论】:

    标签: linux bash content-type mime mime-types


    【解决方案1】:

    使用file。例子:

    > file --mime-type image.png
    image.png: image/png
    
    > file -b --mime-type image.png
    image/png
    
    > file -i FILE_NAME
    image.png: image/png; charset=binary
    

    【讨论】:

    • 如果你在 windows 下使用 Git bash 则不会。
    • 获得只是你可以做的mime类型:file --mime-type FILE_NAME | awk '{print $2}'
    • @JustinJenkins -b 省略文件名,所以 file -b --mime-type FILE_NAME 只返回 mime 类型
    • kmimetypefinder filename
    • 无法识别 application/xmltext/xml
    【解决方案2】:

    您可以使用的其他工具之一(除了文件)是xdg-mime

    例如xdg-mime query filetype &lt;file&gt;

    如果你有好吃的,

    yum install xdg-utils.noarch

    xdg-mime 和 Subrip(subtitles) 文件上的文件比较示例

    $ xdg-mime query filetype subtitles.srt
    application/x-subrip
    
    $ file --mime-type subtitles.srt
    subtitles.srt: text/plain
    

    在上面的文件中只显示为纯文本。

    【讨论】:

    • xdg-mime 查询文件类型 install.sql; xprop:无法打开显示 ''
    • xdg-mime 是一个严重依赖环境变量的 bash 脚本。其中一些例如如果您未登录会话,则不会设置 DE。自己去看看$ less $(which xdg-mime)
    【解决方案3】:

    文件版本 文件 -i -b /path/to/file
    文件版本 >=5 : 文件 --mime-type -b /路径/到/文件

    【讨论】:

    • 文件版本是什么意思?
    • @user2867106 我认为他的意思是文件命令的版本。
    【解决方案4】:

    尝试带有-i 选项的file 命令。

    -i 选项 使文件命令输出 mime 类型的字符串,而不是更传统的人类可读的字符串。因此它可能会说text/plain; charset=us-ascii 而不是ASCII text

    【讨论】:

      【解决方案5】:

      file --mime 有效,但 --mime-type 无效。至少对于我的 RHEL 5。

      【讨论】:

        猜你喜欢
        • 2015-12-04
        • 1970-01-01
        • 1970-01-01
        • 2017-11-23
        • 2019-09-13
        • 2019-03-29
        • 1970-01-01
        • 1970-01-01
        • 2017-01-24
        相关资源
        最近更新 更多