2017-03-15 58 views
0

我沒有在網上找到了一個很好的答案..輕鬆一個條件語句文件信息

我使用symfony2.5和PHP 5.3,並創建一個文件瀏覽器應用程序。

我想知道文件的擴展名前申請好相關的內容類型。 mime_content_type函數已不再..

這裏是我的showAction {},我需要誰測試,如果該文件是一個Excel的一個或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; 
    } 
} 

我開始編程。你能幫助我嗎? 非常感謝!

+0

您必須返回響應對象。 – COil

+0

我的條件不工作,後期編輯 –

+0

你爲什麼不考的文件擴展名? – Edwin

回答

0

finfo是有點怪。你必須創建一個finfo資源,然後使用該資源來檢查文件,就像這樣:

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

,或者面向對象的方法:

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

1)調用未定義功能「finfo_open」和2)班「FINFO」未找到 –

+0

我已激活php_fileinfo.dll擴展在我的php.ini,它的偉大工程!謝謝@hair葡萄乾 –