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 ist wirklich ein PNG-Bild:
$ cat /1.png
?PNG
(with a heap load of random characters)
Das gibt mir den Fehler:
$ 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>
Dies funktioniert, aber ich muss einen MIME-TYPE angeben.
$ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php
linux
bash
content-type
mime
mime-types
Minze
quelle
quelle
file --mime-type FILE_NAME | awk '{print $2}'
file -b --mime-type FILE_NAME
gibt also nur denkmimetypefinder filename
application/xml
odertext/xml
Eines der anderen Tools (neben der Datei), das Sie verwenden können, ist
xdg-mime
z.B
xdg-mime query filetype <file>
wenn du lecker bist,
yum install xdg-utils.noarch
Ein Beispielvergleich von xdg-mime und Datei in einer Subrip-Datei (Untertitel)
In der obigen Datei wird es nur als einfacher Text angezeigt.
quelle
$ less $(which xdg-mime)
Dateiversion <5: Datei -i -b / Pfad / zu / Datei
Dateiversion> = 5: Datei --mime-Typ -b / Pfad / zu / Datei
quelle
Versuchen Sie den
file
Befehl mit-i
Option.-i
Option Bewirkt, dass der Befehl file anstelle von herkömmlichen Zeichenfolgen vom Typ MIME Zeichenfolgen vom Typ MIME ausgibt. So kann estext/plain; charset=us-ascii
eher sagen alsASCII text
.quelle
Datei --mime funktioniert, aber nicht --mime-type. Zumindest für mein RHEL 5.
quelle