2011-09-19 154 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 ']; ?>" />