Existe uma maneira de descobrir o tipo MIME (ou é chamado de "Content-Type"?) De um arquivo em um script bash do Linux?
O motivo pelo qual preciso disso é porque o ImageShack parece precisar dele para fazer upload de um arquivo, pois por algum motivo ele detecta o arquivo .png como um application/octet-stream
arquivo.
Verifiquei o arquivo e é realmente uma imagem PNG:
$ cat /1.png
?PNG
(with a heap load of random characters)
Isso me dá o erro:
$ 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>
Isso funciona, mas preciso especificar um MIME-TYPE.
$ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php
linux
bash
content-type
mime
mime-types
hortelã
fonte
fonte
file --mime-type FILE_NAME | awk '{print $2}'
file -b --mime-type FILE_NAME
retorna apenas o tipo MIMEkmimetypefinder filename
application/xml
outext/xml
uma das outras ferramentas (além do arquivo) que você pode usar é
xdg-mime
por exemplo
xdg-mime query filetype <file>
se você tem yum,
yum install xdg-utils.noarch
Um exemplo de comparação de xdg-mime e arquivo em um arquivo Subrip (legendas)
no arquivo acima, mostre-o apenas como texto simples.
fonte
$ less $(which xdg-mime)
versão do arquivo <5: arquivo -i -b / caminho / para /
versão do arquivo do arquivo> = 5: arquivo --mime-type -b / caminho / para / arquivo
fonte
Experimente o
file
comando com-i
opção.-i
opção Faz com que o comando file produza strings do tipo MIME em vez das mais tradicionais legíveis por humanos. Assim, pode-se dizer emtext/plain; charset=us-ascii
vez deASCII text
.fonte
arquivo --mime funciona, mas não --mime-type. pelo menos para meu RHEL 5.
fonte