2011-10-14 48 views
0

我想上傳一個用戶的頭像,當他註冊或在他/她的個人資料中?我的理解是,您需要將圖像「保存」到位置路徑中,然後在要顯示它時調用img的名稱?用戶的個人資料圖片使用php

我必須更改我的用戶表才能擁有與註冊的每個用戶關聯的唯一圖片嗎?這是我目前的用戶表...

+-------------------------------------------------------------------------+ 
|         users         | 
+---------+-------------+-----------+------------+-----------+------------+ 
| user_id | user_name | user_pass | user_email | user_date | user_level | 
+---------+-------------+-----------+------------+-----------+------------+ 
|   |    |   |   |   |   | 
|   |    |   |   |   |   | 
|   |    |   |   |   |   | 
|   |    |   |   |   |   | 
+---------+-------------+-----------+------------+-----------+------------+ 

我必須爲每個用戶的pro文件圖片添加一個額外的列嗎?看起來如何?

上傳圖片的最佳位置在哪裏?在用戶的個人資料或註冊過程中?這是我想要添加到用戶的配置文件或註冊過程中的代碼...我有這個簡單的表單。

<form action="picUpload.php" method="post" enctype="multipart/form-data"> 
    <label for="file">Filename: </label> 
    <input type="file" name="file" id="file"/> 
    <br /> 
    <input type="submit" name="submit" value="Submit" /> 
</form> 

然後picUpload.php

<?php 
    if((($_FILES["file"]["type"] == "image/gif") 
    || ($_FILES["file"]["type"] == "image/jpeg") 
    || ($_FILES["file"]["type"] == "image/pjpeg") 
    && ($_FILES["file"]["size"] < 50000)) 

    { 
     if ($_FILES["file"]["error"] > 0) 
     { 
      echo "Return code: " . $_FILES["file"]["error"] . "<br/>"; 
     } 
     else 
     { 
      echo "Upload: " . $_FILES["file"]["name"] . "<br/>"; 
      echo "Type: " . $_FILES["file"]["type"] . "<br/>"; 
      echo "Size: " . $_FILES["file"]["size"]/1024 . " Kb<br/>"; 
      echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br/>"; 

      if(file_exists("upload/" . $_FILES["file"]["name"])) 
      { 
       echo $_FILES["file"]["name"] . " already exists!"; 
      } 
      else 
      { 
       move_uploaded_file($_FILES["file"]["tmp_name"], 
       "upload/" . $_FILES["file"]["name"]); 
       echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; 
      } 
     } 
    } 
    else 
    { 
     echo "Invalid file!"; 
    } 
?> 

怎樣一個把這個數據庫,我怎麼把它在PHP文件?

謝謝!

+0

可能重複的[PHP存儲圖像在MySQL或不?](http://stackoverflow.com/questions/527801/php-to-store-images-in-mysql-or-not) – hakre

回答

0

只需在您的數據庫中爲user_pic創建一個單獨的字段,並在其中存儲上傳文件的路徑。當你想顯示它時,只需將圖像的href設置爲數據庫中的文件即可。當然,是的,你需要有一個獨立的列,這是最邏輯和最簡單的方法!

所以你的數據庫是然後像:

+--------------------------------------------------------------------------------------+ 
|         users         |   | 
+---------+-------------+-----------+------------+-----------+------------+------------+ 
| user_id | user_name | user_pass | user_email | user_date | user_level | user_pic | 
+---------+-------------+-----------+------------+-----------+------------+------------+ 
|   |    |   |   |   |   |   | 
|   |    |   |   |   |   |   | 
|   |    |   |   |   |   |   | 
|   |    |   |   |   |   |   | 
+---------+-------------+-----------+------------+-----------+------------+------------+ 

要存儲的東西在數據庫中,你需要查詢您的SQL。這在你所擁有的SQL類型上是不同的!當您想要調用文件名時再次相同。但是您應該知道,在您創建新用戶或在頁面上輸出用戶的某些內容時,您可以執行其他流程!

+1

什麼是如此糟糕使用用戶ID作爲個人資料圖片名稱? – hakre

+0

@hakre,可以說是最好的主意......有時候我們會覺得很難。 – Anonymous

2

保存$_FILES["file"]["name"]的名稱並將其保存在user_profile_pic(表中的新列)中。如果您不想修改此表,則可以創建一個新表,其中具有該表的user_id foriegn關鍵字,並創建user_profile_pic列。

+0

好的,但我如何「保存」在表中?用INSERT還是什麼? –

1

使用戶圖像可以通過其用戶標識進行訪問。

另外,考慮使用PHP GD來調整圖像大小,並保留調整大小的圖像的緩存。

相關問題