2010-07-14 10 views
0

내 응용 프로그램에서 사용자는 자신의 사진 앨범을 만들 수 있습니다.이미지 업로드 스크립트 (PHP)

제 질문은 업로드 한 사용자 ID에 해당하는 이미지를 어떻게 업로드 할 수 있습니까? 즉, 이러한 이미지가이 사용자에게 속해 있음을 나타내는 몇 가지 기준이 있어야합니다.

사용자 ID의 이미지 이름으로 이미지를 저장할 수 있다고 생각했지만,이 경우 이미지와 함께 주석을 저장하는 것이 어려울 수 있습니다.

더 좋은 방법이 있습니까?

답변

2

데이터베이스를 사용하고 있지 않습니까?

어떤 경우

가 사용자 정보를 저장하는 데이터베이스를 설정하지, 다음 iamges와 사용자 간의 논리적 연결을 만듭니다.

예를 들어

사용자 :

|--------------------------------------- 
| UserId  Username  Password | 
|--------------------------------------- 
|  1   Robert  3j9745t3 | 
|  2   Paul   03945u30 | 
|--------------------------------------- 

이미지 :

|-------------------------------------------------- 
| ImageID  UserId  Desc  ImageHash | 
|-------------------------------------------------| 
|  1   1  Some Desc 87ytr8d23yr| 
|  2   1  Some Desc 5uty4095u40| 
|-------------------------------------------------| 

그런 다음 87ytr8d23yr.png 같은 이미지 디렉토리에 이미지를 저장 한 다음 이렇게

같은 PHP 쿼리를 수행 할 수 있습니다
$userid = 1; 
$sql = "SELECT * FROM Images WHERE UserId = " . (int) $userid . " ORDER BY ImageID LIMIT 10"; 

if(false !== ($resource = mysql_query($sql))) 
{ 
    while($imageRow = mysql_fetch_object($resource)) 
    { 
     if(file_exists('imageDir/' . $imageRow->ImageHash . '.png')) 
     { 
      //Do whatever. 
     }else 
     { 
      //Delete the row and inform the user that the picture has been deleted for some reason. 
     } 
    } 
} 

또한 주석 테이블을 작성하고 ImageId를 추가하면됩니다. 사용자가 이미지에 주석을 추가하면 이미지를 주석 행에 추가하여 추적 할 수 있습니다.

+0

당신이 대답으로 선택한대로 당신은 연구해야 할 몇 가지 것들을 알려주는 데이터베이스 보안 ('mysql_real_escape_string' 및 SQL 인젝션), 테이블 조인, 이미지 보안 (헤더를 사용하여 이미지 유형, png, jpg 등을 푸시). :) 행복한 날들 – RobertPitt

3

자주 사용되는 해결책은 각 이미지에 대한 두 개의 데이터를 가지고있다 : 데이터베이스


기록에 물론

  • 그리고 기록의 디스크에

    • 파일 데이터베이스에는 일반적으로 적어도 다음을 포함합니다 :

      • Th e 이미지 경로
      • 업로드 한 사용자의 ID입니다.

      이 방법을 사용하면 각 이미지에 추가 데이터가 있으며이를 사용하여 애플리케이션에 동작을 추가 할 수 있습니다.

      물론 사용자가 이미지를 업로드 할 때 좀 더 많은 작업을해야한다는 것을 의미합니다.하지만 그렇게 나쁘지는 않으며 유용하다고 입증 될 수 있습니다.


      필요로 할 때, 너무, 당신은 예를 들어, 데이터베이스의 테이블과 같은, 그 데이터를 저장하는 다른 필드를 추가 할 수 있습니다 : 각 이미지를 볼 수있는 사용자에 대한

      • 정보 이미지 크기, 내용 유형, 최종 수정 시간 같은
      • 물건, ... 파일에서 사람들을 다시 계산하기 위해 그들이 데이터베이스를 가지고 있습니까
  • +0

    감사합니다 파스칼 나는 당신의 요지를 가지고 있지만 나를 좀 더 많은 아이디어를 줄 수있는 몇 가지 샘플 코드 또는 링크를 제공 할 수 있습니다 – nectar

    0

    을 필요로 할 때마다이없는하려면? 사용자가 로그인 했습니까? 이미지를 추적하고 사용자 ID 열을 포함하고 전체 이미지를 데이터베이스에 저장하거나 이미지 경로 이름 만 저장하는 테이블을 만듭니다.