2012-02-19 5 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

関連する問題