Existe-t-il un moyen de connaître le type MIME (ou est-il appelé "Content-Type"?) D'un fichier dans un script bash Linux?
La raison pour laquelle j'en ai besoin est que ImageShack semble en avoir besoin pour télécharger un fichier, car pour une raison quelconque, il détecte le fichier .png en tant que application/octet-stream
fichier.
J'ai vérifié le fichier, et c'est vraiment une image PNG:
$ cat /1.png
?PNG
(with a heap load of random characters)
Cela me donne l'erreur:
$ 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>
Cela fonctionne, mais je dois spécifier un TYPE MIME.
$ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php
linux
bash
content-type
mime
mime-types
menthe
la source
la source
file --mime-type FILE_NAME | awk '{print $2}'
file -b --mime-type FILE_NAME
renvoie uniquement le type mimekmimetypefinder filename
application/xml
outext/xml
l'un des autres outils (en plus du fichier) que vous pouvez utiliser est
xdg-mime
par exemple
xdg-mime query filetype <file>
si tu as miam,
yum install xdg-utils.noarch
Un exemple de comparaison de xdg-mime et d'un fichier sur un fichier Subrip (sous-titres)
dans le fichier ci-dessus, ne l'affiche que sous forme de texte brut.
la source
$ less $(which xdg-mime)
version du fichier <5: fichier -i -b / chemin / vers / fichier
version du fichier> = 5: fichier --mime-type -b / chemin / vers / fichier
la source
Essayez la
file
commande avec-i
option.-i
option Fait en sorte que la commande file génère des chaînes de type mime plutôt que les plus traditionnelles lisibles par l'homme. Ainsi, il peut diretext/plain; charset=us-ascii
plutôt queASCII text
.la source
file --mime fonctionne, mais pas --mime-type. au moins pour mon RHEL 5.
la source