Mam problem z wykryciem typu MIME prostego pliku PNG z fileinfo, z PHP 5.3.8 zainstalowanym na serwerze CentOS.Wykrywanie typu Mime kończy się niepowodzeniem z fileinfo na PHP 5.3.8
Problem
Zasadniczo, jeśli mam następujący kod:
<?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);
?>
Jak widać plik jest obraz PNG. Bity nagłówka pliku zostały sprawdzone i są poprawne. Ale ta strona wyświetla błędny wynik:
application/octet-stream
Chyba to dlatego, że nie można było wykryć typ pliku, a fileinfo powrócił odpowiedzi domyślnej, ale nie znalazłem sposób na sprawdzenie tego.
Co próbowałem
Aby sprawdzić poprawność pliku magic.mime użyłem komendy konsoli plik:
file -m /usr/share/file/magic.mime /var/vhosts/v4dev/public/Melvin.png
Które zwrócony oczekiwany wynik:
/var/vhosts/v4dev/public/Melvin.png: image/png
I wypróbował również inny plik magic.mime dostarczany z Apache, ale problem pozostaje.
Próbowałem określać plik magic.mime przez domyślną lokalizację fileinfo (z dowiązaniem symbolicznym i kopią pliku), ze zmienną środowiskową MAGIC
i określając ścieżkę pliku w wywołaniu finfo_open
(jak wyżej).
Próbowałem aktualizacji PHP.
... a teraz nie mam opcji.
Jeśli ktokolwiek mógłby mi w tym pomóc, wysłałbym fale szczęścia przez kosmos, by mógł żyć długo i szczęśliwie.
Cheers
Hmm tak, to może działać tymczasowo, dopóki nie dostanę czegoś solidniejszego. Dzięki. – Shtong