2011-10-14 5 views
0

사용자가 등록하거나 프로필에 아바타를 업로드하고 싶습니다. 내가 이해할 수있는 것은 위치 경로에 이미지를 "저장"한 다음 이미지를 표시 할 때 img의 이름을 호출해야한다는 것입니다.php를 가진 사용자의 프로필 사진

등록 된 모든 사용자와 관련된 고유 한 그림이 있어야 사용자 표를 변경해야합니까? 현재 사용자 테이블입니다 ...

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

모든 사용자의 프로필 파일에 추가 열을 추가해야합니까? 그리고 어떻게 보겠습니까?

이미지를 업로드하는 가장 좋은 곳은 어디입니까? 사용자 프로필이나 등록 중입니까? 이 코드는 사용자 프로필이나 등록 중에 추가하고자하는 코드입니다.이 간단한 양식이 있습니다.

<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

[mysql에 이미지를 저장할 수있는 PHP의 복제본이 있습니까?] (http://stackoverflow.com/questions/527801/php-to-store-images-in-mysql-or-not) – hakre

답변

0

DB에 user_pic을위한 별도의 필드를 만들고 거기에 업로드 된 파일의 경로를 저장하십시오. 그것을 표시하려면 이미지 href를 데이터베이스의 파일로 설정하면됩니다. 그리고 물론 네, 물론, 당신은 그것을 위해 별도의 칼럼이 필요할 것입니다, 그것은 가장 논리적이고 쉬운 방법입니다!

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

는 데이터베이스에 뭔가를 저장하려면, 당신은 당신의 SQL 쿼리를해야합니다 :

그래서 DB처럼 다음입니다. 그것은 당신이 가지고있는 SQL의 유형에 따라 다릅니다! 파일 이름을 호출 할 때 다시 동일합니다. 그러나 새로운 사용자를 만들거나 페이지에 사용자의 무언가를 출력 할 때 다른 프로세스에서 수행한다는 것을 알아야합니다!

+1

뭐가 그렇게 나쁜가요? 프로필 아이디로 userid를 사용하는 것까지? – hakre

+0

@hakre, 최선의 생각은 ... 때때로 우리는 열심히 생각합니다. – Anonymous

2

$_FILES["file"]["name"]의 이름을 저장하고 user_profile_pic (테이블의 새 열)에 저장하십시오. 이 테이블을 수정하지 않으려면 대신이 테이블에 user_id foriegn 키가 있고 user_profile_pic 열에 대신 새 테이블을 만들 수 있습니다.

+0

그래도 테이블에 저장하려면 어떻게해야합니까? INSERT 또는 무엇으로 ?? –

1

사용자 이미지는 사용자 ID로 액세스 가능하도록 설정합니다.

또한 PHP GD를 사용하여 이미지의 크기를 조정하고 크기가 조정 된 이미지의 캐시를 유지하십시오.

관련 문제