2012-02-19 4 views
1

phpthumb에서 매우 문제가있는 오류가 있습니다. http://phpthumb.gxdlabs.com/ 기본적으로 프로필 사진을 업로드하는 양식이 있습니다. 업로드는 이미지를 디렉토리에 업로드하기 때문에 작동하는 것으로 보입니다. 문제는 축소판을 생성하지 않지만 모든 변수와 이름이 올바른지 확신합니다. 그것은 나에게 다음과 같은 오류를 준다. 특히 '을 (를) 찾을 수 없습니다 이미지 파일'phpthumb으로 업로드 할 때 어떻게 미리보기 이미지를 만드나요?

Fatal error: Uncaught exception 'Exception' with message 'Image file not found: ����' in {PATH}\phpthumb\ThumbBase.inc.php:193 Stack trace: #0 {PATH}\phpthumb\ThumbBase.inc.php(172): ThumbBase->triggerError('Image file not ...') #1 {PATH}\phpthumb\ThumbBase.inc.php(110): ThumbBase->fileExistsAndReadable() #2 {PATH}\phpthumb\GdThumb.inc.php(96): ThumbBase->__construct('??????JFIF?????...', false) #3 G:\EasyPHP\www\YourSlab\phpthumb\ThumbLib.inc.php(127): GdThumb->__construct('??????JFIF?????...', Array, false) #4 {PATH}\edit_profile.php(74): PhpThumbFactory::create('??????JFIF?????...') #5 {PATH}\edit_profile.php(80): generateThumbnail->createthumbnail(25) #6 {PATH}\edit_profile.php(118): set_profile_info('Mico Abrina', '1', 'asdf', 'asdf', '', 'asdf', 'asdf', '', '05', '4', '1996', 'G:\EasyPHP\tmp\...') #7 {main} thrown in {PATH}\phpthumb\ThumbBase.inc.php on line 193 

내 생각은 내가 바로 업로드 후 썸네일을 생성하는 거니까. 어떻게 작동하게합니까?

<?php 
    //upload images 
    if (file_exists($profile_pic)) { 
     $src_size = getimagesize($profile_pic); 

     if ($src_size['mime'] === 'image/jpeg'){ 
      $src_img = imagecreatefromjpeg($profile_pic); 
     } else if ($src_size['mime'] === 'image/png') { 
      $src_img = imagecreatefrompng($profile_pic); 
     } else if ($src_size['mime'] === 'image/gif') { 
      $src_img = imagecreatefromgif($profile_pic);  
     } else { 
      $src_img = false; 
     } 

     if ($src_img !== false) { 
      $md5sessionid = md5($_SESSION['user_id'].'asdf'); 
      imagejpeg($src_img, "profile_pic/$md5sessionid.jpg"); 
      //end of uploading images 

      //image thumbnail creation class 
      class generateThumbnail { 
       public function createthumbnail($size) { 
       $md5sessionidsecret = md5($_SESSION['user_id'].'asdf'); 
       $md5sessionidthumb = md5($md5sessionidsecret.''.$size); 
       $path_to_thumb_pic = 'profile_pic/'.$md5sessionidthumb.'.jpg'; 
       $profile_pic = file_get_contents('profile_pic/'.$md5sessionidsecret.'.jpg'); 
       $thumb_profile_pic = PhpThumbFactory::create($profile_pic); 
       $thumb_profile_pic->adaptiveResize($size, $size); 
       $thumb_profile_pic->save($path_to_thumb_pic); 
       } 
      } 
      //make the thumbnails 
      $createThumbnail = new generateThumbnail(); 
      $createThumbnail->createthumbnail(25); 
      $createThumbnail->createthumbnail(75); 
      $createThumbnail->createthumbnail(175); 
     } 
    } 
?> 

답변

1

당신이 세 번째 isDataStream 인수 true를 지정하지 않는 PhpThumbFactory::create(), 그 첫 번째 인수로 파일 경로를 취 것으로 보인다. 그래서 Image File Not Found이라고하는 예외에서 이상한 출력을 얻는 것입니다. 당신은 몇 가지를 할 수

는 그것을 해결하기 위해 : 매우 잘 작동

// Either skip the file_get_contents call and pass the file path directly 
$thumb_profile_pic = PhpThumbFactory::create('profile_pic/'.$md5sessionidsecret.'.jpg'); 

// or set the 3rd parameter isDataStream to true 
$profile_pic = file_get_contents('profile_pic/'.$md5sessionidsecret.'.jpg'); 
$thumb_profile_pic = PhpThumbFactory::create($profile_pic, array(), true); 
+0

감사합니다! –

+1

변수를 전달할 수없는 것 같습니다. 이 명령으로 작동하게되었습니다. $ thumb_profile_pic = PhpThumbFactory :: create ('profile_pic /'.$ md5sessionidsecret. '. jpg'); –

+0

그래도 잘 모르겠다. 코드를 살펴 보니 여러 곳에서 언급 한대로 데이터 스트림을 구현하고 싶었지만 실제로는 작동하지 않을 것이라고 생각했던 코드를 살펴 보았지만, 이전 버전 중 하나. 다행 했어. – drew010