2012-05-17 110 views
0

我想爲我的用戶製作一個簡單的頭像系統。頭像:默認圖片

用法很簡單,每天上傳頭像圖像是由用戶命名,例如:

<a>...$username.'.jpg';..</a>

所以我們實在沒有必要的數據庫。 當用戶登錄時,我只是將文件類型附加到已經(從數據庫)所需的用戶名。

這裏我關心的是默認圖像,它在用戶設置自己的圖像之前使用。處理這個問題的最好方法是什麼?當創建用戶帳戶時,是否有可能將默認圖像創建/複製到用戶頭像文件夾?

我知道我可以使用數據庫(默認值)或檢查用戶圖像是否設置等,但我想保持它儘可能簡單。

在此先感謝:)

+1

你可以調用一個php文件,而不是檢查$ filename.jpg是否存在,如果失敗則輸出一個默認圖像 – gunnx

+1

你看過Gravatar嗎? http://en.gravatar.com/ – antyrat

+0

我會做什麼gunnx建議以及。 – Mahn

回答

1

非常簡單的文件將做什麼的例子。當然,我建議讓它更安全。

$filename = $_GET["avatar"]; 
$path = 'path/to/your/files'; 
if (!file_exists($path.$filename.'.jpg')) 
{ 
    $filename = "default"; 
} 
Header('Content-type: image/jpg'); 
readfile($path.$filename.'.jpg'); 
1

檢查文件系統上存在用戶的個人資料圖片:

  • 如果它存在:顯示。
  • 如果不存在:顯示存儲在一個地方的默認圖像。不需要複製它。

我建議將圖像名稱保存在數據庫中,及其擴展名。人們可能想要上傳PNG或GIF圖像,而不是傳統的JPG。

1

的你正在嘗試做的可能是一個簡單的例子...

  1. 當你的網站用戶註冊,他或她可以上傳或者不是一個圖像。

  2. 在此過程中進行驗證,以確定是否存在要上傳的圖像。另外,如果流程中存在文件,請驗證其擴展名(聲明並使用要允許的擴展名進行數組並與包含文件進行比較)。

  3. 如果正在註冊的用戶沒有上傳圖片,請在您的服務器中創建一個默認圖片,例如「users/default.jpg」。因此,在插入到你的分貝,你必須把你想象中的「image_name」列:默認,並在你的「image_ext」列:.jpg

  4. 如果註冊的用戶上傳圖像的過程中,服務器(當您驗證了擴展名和大小時)創建例如:「users/1.jpg」,其中「1」是用戶標識符,並且在插入到您想象的「image_name」列中的db中:1並在您的「image_ext」列名:.jpg

  5. 爲了獲取圖像,只是做一種的用戶ID的select * from你想,只是把你的HTML:echo "<img src='users/".$row['image_name'].$row['image_ext']."'/>";,這一切,你做。