Как я могу узнать тип MIME файла (Тип контента)?

Существует ли способ узнать тип MIME (или это называют "Типом контента"?) файла в Linux колотят сценарий?

Причина мне нужен он, состоит в том, потому что 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.

$ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php
91
задан TRiG 14 June 2018 в 10:33
поделиться

3 ответа

Используйте файл . Examples:

> 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
191
ответ дан 24 November 2019 в 06:43
поделиться

один из других инструментов (помимо файла), который вы можете использовать, это xdg-mime

например xdg-mime query filetype

если у вас есть yum,

yum install xdg-utils.noarch

Пример сравнения xdg-mime и файла в файле Subrip (субтитров)

$ xdg-mime query filetype subtitles.srt
application/x-subrip

$ file --mime-type subtitles.srt
subtitles.srt: text/plain

в приведенном выше файле показывает его только как простой текст.

21
ответ дан 24 November 2019 в 06:43
поделиться

Попробуйте выполнить команду file с параметром -i .

-i параметр Заставляет команду file выводить строки типа mime, а не более традиционные, удобочитаемые человеком. Таким образом, он может сказать text / plain; charset = us-ascii , а не текст ASCII .

2
ответ дан 24 November 2019 в 06:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: