我希望能够呈现用户的照片。该用户可以是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],'" />';
}
虽然,我总是在变量$ source中得到一个空数组,即使图像存在。我做错了什么?
答案 0 :(得分:0)
这种方式使用glob
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所说,你现在指的是文件系统root /是绝对路径而不是相对于你的文档根目录。