¿Hay alguna forma de averiguar el tipo MIME (o se llama "Content-Type"?) De un archivo en un script bash de Linux?
La razón por la que lo necesito es porque ImageShack parece necesitarlo para cargar un archivo, ya que por alguna razón detecta el archivo .png como un application/octet-stream
archivo.
Revisé el archivo y realmente es una imagen PNG:
$ cat /1.png
?PNG
(with a heap load of random characters)
Esto me da el error:
$ 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>
Esto funciona, pero necesito especificar un TIPO MIME.
$ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php
linux
bash
content-type
mime
mime-types
menta
fuente
fuente
file --mime-type FILE_NAME | awk '{print $2}'
file -b --mime-type FILE_NAME
devuelve solo el tipo mimekmimetypefinder filename
application/xml
otext/xml
una de las otras herramientas (además del archivo) que puede usar es
xdg-mime
p.ej
xdg-mime query filetype <file>
si tienes yum,
yum install xdg-utils.noarch
Un ejemplo de comparación de xdg-mime y archivo en un archivo Subrip (subtítulos)
en el archivo anterior solo lo muestra como texto sin formato.
fuente
$ less $(which xdg-mime)
versión de archivo <5: archivo -i -b / ruta / a /
archivo versión de archivo> = 5: archivo --mime-type -b / ruta / a / archivo
fuente
Pruebe el
file
comando con-i
opción.-i
opción Hace que el comando de archivo genere cadenas de tipo mime en lugar de las más tradicionales legibles por humanos. Por lo tanto, puede decir entext/plain; charset=us-ascii
lugar deASCII text
.fuente
file --mime funciona, pero no --mime-type. al menos para mi RHEL 5.
fuente