167 votes

Comment connaître le type MIME (Content-Type) d'un fichier ?

Existe-t-il un moyen de connaître le type MIME (ou est-ce appelé "Content-Type" ?) d'un fichier dans un script bash de Linux ?

La raison pour laquelle j'en ai besoin est qu'ImageShack semble en avoir besoin pour télécharger un fichier, car pour une raison quelconque, il détecte le fichier .png comme un fichier de type application/octet-stream fichier.

J'ai vérifié le fichier et il s'agit bien d'une image PNG :

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

Je reçois alors l'erreur suivante :

$ 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 MIME-TYPE.

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

1voto

foo Points 971

Pour détecter les types MIME, utilisez le bien nommé " type d'image commande ".

Il dispose d'un certain nombre d'options de formatage de la sortie, et même d'une option de rétrocompatibilité avec "file".

Mais surtout, il accepte les entrées non seulement sous forme de fichier, mais aussi via stdin/pipe, ce qui permet d'éviter les fichiers temporaires lors du traitement des flux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X