2017-03-15 9 views
0

ich hat nicht eine gute Antwort auf dem Netz gefunden ..einfach eine Bedingung Aussage Datei info

Ich verwende symfony2.5 und PHP 5.3 und eine Datei-Explorer-Anwendung.

Ich möchte die Erweiterung der Datei wissen, bevor Sie den guten zugeordneten Inhaltstyp anwenden. mime_content_type Funktion ist veraltet ..

Hier mein showaction ist {}, ich brauche eine Funktion, die, wenn die Datei testen eine Excel eine oder eine PDF-Datei ist:

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; 
    } 
} 

Ich bin mit der Programmierung beginnen. Kannst du mir helfen, Jungs? Vielen Dank!

+0

Sie müssen das Antwortobjekt zurück. – COil

+0

mein Zustand funktioniert nicht, Post bearbeitet –

+0

Warum testen Sie nicht die Dateierweiterung? – Edwin

Antwort

0

finfo ist ein wenig seltsam. Sie müssen eine finfo Ressource erstellen, verwenden Sie dann die Ressource eine Datei zu prüfen, etwa so:

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

oder den OOP Weg:

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

1) Aufruf zu undefined Funktion 'finfo_open' und 2) Klasse 'finfo' nicht gefunden –

+0

Ich habe php_fileinfo.dll Erweiterung in meinem php.ini aktiviert und es funktioniert großartig! Danke @hair Rosine –

Verwandte Themen