PHP:如果图像存在则显示图像,否则显示不同的图像

时间:2011-09-19 03:42:38

标签: php

我正在制作一个登录系统,注册和php中的个人资料页面,我正在尝试使个人资料图片工作。

如果用户尚未上传个人资料图片,则如果用户上传了个人资料图片,则显示“无个人资料图片”图片,使其显示他已上传的图片。

现在它只显示默认图片noprofile.png

< img src="uploads/< ? echo "$username" ? >/noprofile.png">

我希望它显示icon.png如果icon.png已上传,如果尚未上传,请将其显示为noprofile.png

7 个答案:

答案 0 :(得分:3)

使用file_exists

运行逻辑
$image="/path/on/local/server/to/image/icon.png";
$http_image="http://whatever.com/url/to/image";

if(file_exists($image))
{
  echo "<img src=\"$http_image\"/>\n";
}
else
{
  echo "<img src=\"uploads/$username/noprofile.png\"/>\n";
} 

答案 1 :(得分:0)

使用文件exists检查文件是否已上传。如果该文件存在,请使用该url,否则使用默认的noprofile.png。

答案 2 :(得分:0)

如果已上传或未上传,您可以在数据库中创建一个列。

OR

你可以看到文件是否存在。

<?php
if (file_exists('uploads/' . $username . '/icon.png')) {
echo '<img src="uploads/' . $username . '/icon.png">';
}
else {
echo '<img src="uploads/' . $username . '/noprofile.png">';
}
?>

答案 3 :(得分:0)

<?php

$img = file_exists(sprintf('/path/to/uploads/%s/icon.png', $username))
     ? 'icon.png' : 'noprofile.png';
?>

<img src="uploads/<?php printf('%s/%s', htmlspecialchars($username), $img) ?>">

答案 4 :(得分:0)

您可以使用http://us3.php.net/file_exists检查图像文件是否存在。

另一种选择是 - 假设您将用户信息保存在数据库中 - 具有带图像名称的列。由于您无论如何都必须从用户表中检索信息,因此请检查该列是空还是空。如果是,则用户尚未上传图像。

然后,在显示用户照片的页面中,您可能会遇到如下代码:

$userPhoto = ($photoName)? $photoName : 'placeholder';
echo '<img src="uploads/'.$userPhoto.'.png" />

答案 5 :(得分:0)

假设文件路径正确,这就是你要做的......

<?php $filename = "uploads/".$username;    
$imgSrc = file_exists($filename) ? $filename : "uploads/noprofile.png"; ?>
<img src=<?php echo $imgSrc?>

答案 6 :(得分:0)

在img标签中使用onerror属性

<img onerror="this.src= 'img/No_image_available.png';"  src="<?php echo $row['column_name '];  ?>" />