我有以下代码,用于在显示信息时从数据库加载用户图像。
我试图以一种方式编写它,以便检查用户是否已在图像数据库中绑定了用户ID的图像,如果是这样,会使图像单独存在,如果没有,则会显示“缺失” .jpg“/默认用户图片。
我已经尝试了以下内容,但是现在看来代码覆盖了现有的图像并用missing.jpg图像替换它们,我不知道为什么。
我很感激有人看一看并告诉我为什么会这样。
//Images
$thisScript = $_SERVER["SCRIPT_FILENAME"];
$dirName = dirname($thisScript);
$relative_path = "images/headshots/".$this->id.".jpg";
$missing_path = "images/headshots/missing.jpg";
$full_path = $dirName . "/" . $relative_path;
//if(file_exists($relative_path))
//if(file_exists($_FILES['uploadedfile']['name']))
if(basename( $_FILES['uploadedfile']['name']) != '' /*and (file_exists($_FILES['uploadedfile']['name']))*/)
{
$this->process_headshot_file($relative_path, $full_path);
}
else
{
//$this->process_headshot_file($missing_path, $full_path);
$query = "UPDATE hraps SET headshot_filename = '".$_SESSION['missing_headshot_image']."' WHERE id = ".$this->id;
$result = mydb::cxn()->query($query);
}
提前感谢您的帮助。
答案 0 :(得分:0)
您的if
声明:
if(basename( $_FILES['uploadedfile']['name']) != '')
仅在$_FILES
由于您表示您希望在显示信息时显示图像,因此可能不会经常触发图像,因此else
将会关闭。
我认为你不需要做比这更复杂的事情:
$image = "images/headshots/missing.jpg";
if(file_exists($relative_path)) {
$image = $relative_path;
}
$full_path = $dirName . "/" . $image;
$this->process_headshot_file($image, $full_path);