2017-03-15 4 views
0

je ne ai pas trouvé une bonne réponse sur le web ..facile une condition info fichier déclaration

J'utilise symfony2.5 et php 5.3 et la création d'une application de l'explorateur de fichiers.

Je veux connaître l'extension du fichier avant d'appliquer le bon type de contenu associé. fonction mime_content_type est dépréciée ..

Voici mon showAction {}, i besoin d'une fonction qui teste si le fichier est un fichier Excel ou un fichier pdf:

public function showAction($repertoire, $file) 
{ 

    $response = new Response(); 
    $response->setContent(file_get_contents(''.$repertoire.'/'.$file.'')); 

    if(file_info($file) == 'application/pdf'){ 

    $response->headers->set('Content-Type', 'application/pdf'); 
    $response->headers->set('Content-disposition', 'filename='. $file); 
    return $response; 

    }else { 

    $response->headers->set('Content-Type', 'application/application/vnd.ms-excel'); 
    $response->headers->set('Content-disposition', 'filename='. $file); 
    return $response; 
    } 
} 

je commence avec la programmation. Pouvez-vous m'aider les gars? Merci beaucoup!

+0

Vous devez retourner l'objet de réponse. – COil

+0

ma condition ne fonctionne pas, post édité –

+0

pourquoi ne pas vous tester l'extension de fichier? – Edwin

Répondre

0

finfo est un peu étrange. Vous devez créer une ressource finfo, utilisez cette ressource pour inspecter un fichier, comme ceci:

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
if('application/pdf' === finfo_file($finfo, $file)) { 
    ... 
} 

ou, comme POO:

$finfo = new finfo(FILEINFO_MIME_TYPE); 
if('application/pdf' === $finfo->file($file)) { 
    ... 
} 
+0

1) Appel à la fonction indéfinie 'finfo_open' et 2) Classe 'finfo' non trouvé –

+0

J'ai activé l'extension php_fileinfo.dll dans mon php.ini ET IL FONCTIONNE BIEN! Merci @hair raisin –