Tengo problemas para detectar el tipo MIME de un simple archivo PNG con información de archivo, con PHP 5.3.8 instalado en un servidor CentOS.Detección del tipo de MIME falla con información de archivo en PHP 5.3.8
El problema
Básicamente, si tengo el siguiente código:
<?php
$const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
$handle = finfo_open($const, '/usr/share/file/magic.mime');
$result = finfo_file($handle, '/var/vhosts/v4dev/public/Melvin.png');
echo $result;
unset($handle);
?>
Como se puede ver el archivo es una imagen PNG. Los bytes del encabezado del archivo se han verificado y son correctos. Sin embargo, esta página da salida a un resultado incorrecto:
application/octet-stream
supongo que esto se debe a que no se pudo detectar el tipo de archivo, y fileinfo devuelve la respuesta por defecto, pero he encontrado ninguna manera de comprobar eso.
Lo que intenté
Para comprobar la corrección de archivos magic.mime, utilicé el comando de consola archivo:
file -m /usr/share/file/magic.mime /var/vhosts/v4dev/public/Melvin.png
que devolvió el resultado esperado:
/var/vhosts/v4dev/public/Melvin.png: image/png
I también probé otro archivo magic.mime proporcionado con Apache, pero el problema persiste.
Intenté especificar el archivo magic.mime a través de la ubicación predeterminada de fileinfo (con enlace simbólico y copia del archivo), con la variable de entorno MAGIC
y especificando la ruta del archivo en la llamada finfo_open
(como se indicó anteriormente).
Intenté actualizar PHP.
... y ahora me he quedado sin opciones.
Si alguien me podría ayudar con esto, me envían ondas de la felicidad a través del espacio para que él/ella puede vivir felices para siempre.
Saludos
Hmm, sí, eso podría funcionar como un truco temporal hasta que obtuve algo más sólido. Gracias. – Shtong