Czy istnieje sposób, aby znaleźć typ MIME (czy też nazywa się to „Content-Type”?) Pliku w skrypcie bash systemu Linux?
Powodem, dla którego go potrzebuję, jest to, że ImageShack wydaje się potrzebować go do przesłania pliku, ponieważ z jakiegoś powodu wykrywa plik .png jako application/octet-stream
plik.
Sprawdziłem plik i naprawdę jest to obraz PNG:
$ cat /1.png
?PNG
(with a heap load of random characters)
To daje mi błąd:
$ 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>
To działa, ale muszę określić TYP MIME.
$ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php
linux
bash
content-type
mime
mime-types
Mennica
źródło
źródło
file --mime-type FILE_NAME | awk '{print $2}'
file -b --mime-type FILE_NAME
zwraca tylko typ MIMEkmimetypefinder filename
application/xml
lubtext/xml
jednym z innych narzędzi (oprócz pliku), którego możesz użyć, jest
xdg-mime
na przykład
xdg-mime query filetype <file>
jeśli masz mniam,
yum install xdg-utils.noarch
Przykładowe porównanie xdg-mime i pliku w pliku Subrip (napisy)
w powyższym pliku pokaż go tylko jako zwykły tekst.
źródło
$ less $(which xdg-mime)
wersja pliku <5: plik -i -b / ścieżka / do /
wersja pliku> = 5: plik - typ-mime -b / ścieżka / do / pliku
źródło
Wypróbuj
file
polecenie z-i
opcją.-i
opcja Powoduje, że polecenie file wyświetla ciągi typu MIME zamiast bardziej tradycyjnych, czytelnych dla człowieka. Dlatego możetext/plain; charset=us-ascii
raczej powiedzieć niżASCII text
.źródło
plik --mime działa, ale nie - typ-mime. przynajmniej dla mojego RHEL 5.
źródło