wake-up-neo.net

Wie kann ich den MIME-Typ (Content-Type) einer Datei herausfinden?

Gibt es eine Möglichkeit, den MIME-Typ (oder heißt er "Content-Type"?) Einer Datei in einem Linux-Bash-Skript herauszufinden?

Der Grund, warum ich es brauche, ist, dass ImageShack es anscheinend zum Hochladen einer Datei benötigt, da es aus irgendeinem Grund die PNG-Datei als application/octet-stream - Datei erkennt.

Ich habe die Datei überprüft und es handelt sich wirklich um ein PNG-Bild:

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

Dies gibt mir den Fehler:

$ curl -F "[email protected]/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>

Das funktioniert, aber ich muss einen MIME-TYPE angeben.

$ curl -F "[email protected]/1.png;type=image/png" http://www.imageshack.us/upload_api.php
91
Mint

Verwenden Sie file. Beispiele:

> 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
187
bhups

eines der anderen Tools (neben der Datei), die Sie verwenden können, ist xdg-mime

z.B xdg-mime query filetype <file>

wenn du lecker hast,

yum install xdg-utils.noarch

Ein beispielhafter Vergleich von xdg-mime und file in einer Subrip-Datei (Untertitel)

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

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

in der obigen Datei nur als Klartext anzeigen.

21
ghostdog74

Dateiversion <5: Datei -i -b/Pfad/zu/Datei
Dateiversion> = 5: Datei - MIME-Typ -b/Pfad/zu/Datei

9
Andrey

Versuchen Sie den Befehl file mit -i Möglichkeit.

-i Option Veranlasst den Befehl file, Zeichenfolgen vom Typ MIME auszugeben, anstatt die herkömmlicheren, für Menschen lesbaren. So kann es sagen text/plain; charset=us-ascii eher, als ASCII text.

2
codaddict

datei --mime funktioniert, aber nicht --mime-type. Zumindest für meinen RHEL 5.

1
fanchyna