2011-10-24 9 views
5

Ho problemi a rilevare il tipo mime di un semplice file PNG con fileinfo, con PHP 5.3.8 installato su un server CentOS.Il rilevamento del tipo Mime non riesce con fileinfo su PHP 5.3.8

Il problema

In sostanza, se ho il seguente codice:

<?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); 
?> 

Come si può vedere il file è un'immagine PNG. I byte di intestazione del file sono stati controllati e sono corretti. Ma questa pagina emette un risultato errato:

application/octet-stream 

Credo che questo è perché il tipo di file non è stato possibile rilevare, e fileinfo restituito la risposta predefinita, ma ho trovato alcun modo per verificare che.

Quello che ho cercato

Per controllare il file magic.mime correttezza, ho usato il comando console del file:

file -m /usr/share/file/magic.mime /var/vhosts/v4dev/public/Melvin.png 

che ha restituito il risultato atteso:

/var/vhosts/v4dev/public/Melvin.png: image/png 

I Ho anche provato un altro file magic.mime fornito con Apache, ma il problema rimane.

Ho provato a specificare il file magic.mime tramite il percorso fileinfo predefinito (con collegamento simbolico e copia del file), con la variabile di ambiente MAGIC e specificando il percorso del file nella chiamata finfo_open (come sopra).

Ho provato ad aggiornare PHP.

... e ora ho esaurito le opzioni.


Se qualcuno mi potrebbe aiutare con questo, manderei ondate di felicità attraverso lo spazio in modo che lui/lei può vivere felici e contenti.

Acclamazioni

risposta

1

Allora, perché non chiamare il comando file dallo script?

$result = `file -bm /usr/share/file/magic.mime /var/vhosts/v4dev/public/Melvin.png` 

Certo, non è perfetto, ma è un'opzione.

+0

Hmm sì, potrebbe funzionare come un trucco temporaneo fino a quando non avrò qualcosa di più solido. Grazie. – Shtong

Problemi correlati