2013-08-14 2 views
1

사용자가 내 웹 사이트에 사진을 업로드 할 때 일반 이미지 확장 (jpg, png, gif)을 허용 한 다음 PHP로 모두 jpg로 변환하는 것이 더 쉬워 보입니다. 나는 PHP를 사용하여 이미지를 찾고 여러 이미지 유형의 확장자를 확인하기 위해 사용자 정의 함수를 만들어야했지만 PHP는 그럴 가치가없고 너무 무겁다. 차라리 jpg로 변환하고 이미지의 정확한 경로를 알고 싶지만 나쁜 생각 일 수 있습니다.이미지 확장 처리

더 좋은 방법이 있습니까? 이 딜레마를 해결하기 위해 다른 사람들이하는 일은 무엇입니까?

+0

비록 내가 당신의 고통을 느끼지만, 이것은 광범위하고 의견에 기반한 방법입니다. – jterry

답변

1

먼저 업로드 된 이미지 형식을 확인하십시오.

$valid_formats = array("jpg", "png", "gif", "bmp" , "jpeg"); 
if (isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") { 
    $name = $_FILES['photoimg']['name']; 
    $size = $_FILES['photoimg']['size']; 


    if (strlen($name)) { 
     list($txt, $ext) = explode(".", $name); 
     if (in_array($ext, $valid_formats)) { 
      if ($size < (10240 * 10240)) { 
       $actual_image_name = time() . substr(str_replace(" ", "_", $txt), 5) . "." . $ext; 
       $tmp = $_FILES['photoimg']['tmp_name']; 
       if (move_uploaded_file($tmp, $path . $actual_image_name)) { 
        //mysql_query("INSERT into hw_site_gallery SET gallery_content='$actual_image_name' ,hotel_id='$hotel_id', gallery_type='$gallery_type'"); 
        /* QUERY END's HERE */ 

       } 
       else 
        echo "failed"; 
      } 
      else 
       echo "Image file size max 10 MB"; 
     } 
     else 
      echo "Invalid file format.."; 
    } 
1

imgur.com 및 이와 유사한 사이트에서 수행하는 작업을 살펴볼 수 있습니다.

  1. 각 이미지에는 고유 한 ID가 있습니다.
  2. 각 화상 .PNG, 관계없이 .gif 참고 만료 여부 작업 재, 또는 .jpg된다
  3. 실제 확장/파일명은 DB

에 저장된다 (I은 믿고있어) 예 http://i.imgur.com/m6Z68x3.jpg (imgur의 맨 위 링크). 끝을 .png 또는 .gif 또는 다른 확장자로 변경할 수 있으며 제대로 작동합니다. 확장자가 없으면 사진의 정보가 표시되지만 이미지를 표시하기 위해 다시 작성할 수 있습니다.

편집 : Prahbu 's do much 1 & 3, ID 대신 time() 사용. 당신은 여기 2와 함께 할 수 있습니다.