2013-11-24 36 views
-1

我希望能夠呈現用戶的照片。該用戶可以是Doctor,Nurse或Patient類型,並且屬於每種類型的每個人都具有識別他的不同ID。我將目錄/ images/user_upload /中的每個類型的用戶的照片分成三個文件夾,並且給定的用戶可能有或沒有照片。如果他有一張照片,我想用與他的ID相同的名字來呈現照片(請注意,我不知道此文件的擴展名,只有名稱)。如果他不是,我想呈現一個默認圖像。爲此,我有一個名爲printUserPhoto的函數。獲取文件的目錄而不知道其分機

function printUserPhoto() 
{ 
    $path = '/images/user_upload/' .ucfirst($_SESSION['listtype']). '/' .$_SESSION['id']. '.*'; 
    $source = glob($path); 
    if(empty($source)) 
     echo '<img src="images/default_profile_img.png" />'; 
    else 
     echo '<img src="',$source[0],'" />'; 
} 

雖然,我總是在變量$源的空數組,即使圖像中存在。我究竟做錯了什麼?

+1

'glob'在服務器文件系統級別工作。你要求它從根開始尋找一條路徑。 '/ images'最可能不存在 – Phil

+0

你可以驗證'is_dir('/ images/user_upload /'.ucfirst($ _ SESSION ['listtype'])是否爲真?你有一個絕對路徑,但我猜測它應該是相對的。 – jszobody

回答

0

這種方式與水珠

function printUserPhoto() 
{ 
    $pathToDocumentRoot = $_SERVER['DOCUMENT_ROOT']; 
    $path = $pathToDocumentRoot . '/images/user_upload/' .ucfirst($_SESSION['listtype']). '/' .$_SESSION['id']. '.*'; 
    $source = glob($path); 
    if(empty($source)){ 
     echo '<img src="images/default_profile_img.png" />'; 
    } else { 
     echo '<img src="',$source[0],'" />'; 
    } 
} 

也許限制的文件類型用戶可以上傳。有了你可以做這樣的事情:

function printUserPhoto() 
{ 
    $pathToDocumentRoot = $_SERVER['DOCUMENT_ROOT']; 
    $path = $pathToDocumentRoot . '/images/user_upload/' .ucfirst($_SESSION['listtype']). '/' .$_SESSION['id']; 
    $file = "images/default_profile_img.png"; 
    if(file_exists($path . '.jpg')){ 
     $file = $path . '.jpg'; 
    }else if(file_exists($path . '.png')){ 
     $file = $path . '.png'; 
    }else if(file_exists($path . '.gif')){ 
     $file = $path . '.gif'; 
    } 
    echo '<img src="' . $file . '" />'; 

} 

另外,作爲由@Phil是說你現在指的是文件系統的根目錄/是不是相對於文檔根目錄的絕對路徑。

相關問題