2009-04-21 11 views
2

J'essaie de vérifier le type MIME d'un fichier téléchargé dans mon application PHP. Je télécharge le fichier, faites ceci, où fichier $ est le chemin à mon dossier:L'option FILEINFO_MIME de PHP renvoie une chaîne vide

$finfo = new finfo(FILEINFO_MIME); 
$mimetype = $finfo->file($file); 

Dans cette situation, mimetype $ est toujours une chaîne vide. J'ai testé sur plusieurs types de fichiers (.jpg, .doc, .txt, .pdf) et c'est toujours vide. C'est censé retourner quelque chose comme "image/jpeg".

j'étais mise au point et changé la première ligne de telle sorte que l'extrait de code est maintenant ceci:

$finfo = new finfo(FILEINFO_NONE); 
$info = $finfo->file($file); 

Dans cette situation, quand j'uploadé un jpg, $ info était le suivant: les données d'image JPEG standard JFIF 1.02 . Donc maintenant je sais que ça va correctement dans le fichier, mais passer dans FILEINFO_MIME ne me rend pas la bonne chaîne mime.

Cela se produit uniquement sur mon serveur de transfert. Sur mon serveur local, j'obtiens le bon type mime. Quelqu'un at-il des idées pour lesquelles mon serveur de transfert renvoie une chaîne vide pour le type mime?

+1

-t-il revenir à la chaîne vide, ou FAUX? –

+2

Renvoie la chaîne vide. – Pamela

Répondre

0

Essayez ceci:

<?php 
$fi = new finfo(FILEINFO_MIME,'/usr/share/file/magic'); 
$mime_type = $fi->buffer(file_get_contents($file)); 
?> 
+1

Cela me donne aussi une chaîne vide. – Pamela

1

Je me demande si le fichier magique est placé correctement sur votre serveur.

magic_file
Nom d'un fichier de base de données magique, quelque chose comme /path/to/magic.mime. Si non spécifié, la variable d'environnement MAGIC est utilisée. Si cette variable n'est pas définie,/usr/share/misc/magic est utilisé par défaut. Un suffixe .mime et/ou .mgc est ajouté si nécessaire.

Comme vous pouvez spécifier votre propre fichier via le dernier argument

$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); 
+1

Merci pour la suggestion, mais je suis toujours en train de récupérer une chaîne vide avec ceci. – Pamela

+1

Mon fichier MIME se trouve dans/usr/share/file/magic, mais le même résultat existe aussi. – Pamela

0

Avez-vous essayé l'exemple from the manual:

<?php 
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension 

    echo finfo_file($finfo, $filename) . "\n"; 

finfo_close($finfo); 
?>