2011-09-19 206 views
2

我正在登录系统与注册和个人资料页面在PHP中,我正在尝试做一个个人资料图片工作。PHP:如果图像存在显示图像其他显示不同的图像

如果用户还没有上传个人资料图片,那么如果用户上传了个人资料图片,使其显示“没有个人资料图片”图片,使其显示他上传的图片。

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

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

我想让它显示icon.png如果icon.png已经上传,如果它未上传使其显示,noprofile.png

回答

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"; 
} 
0

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

0

如果数据库已经上传或不上传,您可以在数据库中创建一个列来存储值。

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

<?php 
if (file_exists('uploads/' . $username . '/icon.png')) { 
echo '<img src="uploads/' . $username . '/icon.png">'; 
} 
else { 
echo '<img src="uploads/' . $username . '/noprofile.png">'; 
} 
?> 
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) ?>"> 
0

你可以使用http://us3.php.net/file_exists检查,如果图像文件是存在的。

另一种替代方法是 - 假设您将用户信息保存在数据库中 - 具有包含图像名称的列。由于您必须从用户表中检索信息,请检查该列是否为空或空白。如果是,用户尚未上传图像。

然后,在你显示用户照片的页面,你可能有代码是这样的:

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

其中$ photoName是从用户的照片列中输入字符串在你的数据库,或者是NULL /假 –

0

假定文件路径是正确的,这里是你做了什么......

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

使用的onerror属性在img标签

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