Как я могу узнать тип MIME файла (Content-Type)?
есть ли способ узнать тип MIME (или он называется "Content-Type"?) файла в скрипте Linux bash?
причина, по которой мне это нужно, заключается в том, что ImageShack, похоже, нуждается в нем для загрузки файла, так как по какой-то причине он обнаруживает .png файл в виде .
Я проверил файл, и это действительно изображение 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
5 ответов:
использовать
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
один из других инструментов (кроме файла) вы можете использовать
xdg-mime
например
xdg-mime query filetype <file>
если у вас есть Юм
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
в приведенном выше файле только показать его как обычный текст.
попробовать
file
С .
-i
опция заставляет команду file выводить строки типа mime, а не более традиционные для чтения человеком. Таким образом, он может сказатьtext/plain; charset=us-ascii
, а неASCII text
.