Keine Thumbnails bei Upload Script

Cyber-GFX

Mitglied
Hallo Leute, hab ein Problem mit meinem Upload Script, wenn ich eine Gif Datei
Hochladen möchte, Generiert er keine Thumbnail!

Der Code:

PHP:
<? 
if($action){ 

   // -------------------------------- 
   // Diverse Variablen 
   // -------------------------------- 

$path = "img/"; // Url zum Speicherordner der großen Bilder 
$thumb_path = "img/thumbs/"; // Url zum Speicherordner der Vorschaubilder 
$config_thumb_width = "200"; // Bildbreite max. bei Vorschaubild 
$config_thumb_height = "200"; // Bildhöhe max. bei Vorschaubild 
$resizequality = "70"; // Bildkompressionsrate 0-100 
$deindomain = "http://cyber-gfx.de/upload-script/";  // unsere Domain 

if ($HTTP_POST_FILES['userfile']['tmp_name']<> 'none') 
   { 

   // -------------------------------- 
   // Get File Upload Info 
   // -------------------------------- 

         $filename = $HTTP_POST_FILES['pic_file']['name']; 
         $filetype = $HTTP_POST_FILES['pic_file']['type']; 
         $filetmp = $HTTP_POST_FILES['pic_file']['tmp_name']; 

   // -------------------------------- 
   // Check file type 
   // -------------------------------- 

   switch ($filetype) 
   { 
      case 'image/jpeg': 
      case 'image/jpg': 
      case 'image/pjpeg': 

         $pic_filetype = '.jpg'; 
         break; 

      case 'image/png': 
      case 'image/x-png': 

         $pic_filetype = '.png'; 
         break; 

      case 'image/gif': 

         $pic_filetype = '.gif'; 
         break;
		  
      default: 
         die("Falsches Dateiformat. Nur JPEG, GIF oder PNG erlaubt!"); 
   } 

   // -------------------------------- 
   // Generate filename 
   // -------------------------------- 

   srand((double)microtime()*1000000);   // for older than version 4.2.0 of PHP 

   do 
   { 
      $pic_filename = md5(uniqid(rand())) . $pic_filetype; 
   } 
   while( file_exists($path . $pic_filename) ); 


   // -------------------------------- 
   // Move this file to upload directory 
   // -------------------------------- 

   $ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; 

   if ( @$ini_val('open_basedir') != '' ) 
   { 
      if ( @phpversion() < '4.0.3' ) 
      { 
         die("open_basedir is set and your PHP version does not allow move_uploaded_file<br /><br />Please contact your server admin"); 
      } 

      $move_file = 'move_uploaded_file'; 
   } 
   else 
   { 
      $move_file = 'copy'; 
   } 

   $move_file($filetmp, $path . $pic_filename); 

   @chmod($path . $pic_filename, 0777); 


   // -------------------------------- 
   // Well, it's an image. Check its image size 
   // -------------------------------- 

   $pic_size = getimagesize($path . $pic_filename); 

   $pic_width = $pic_size[0]; 
   $pic_height = $pic_size[1]; 


   // -------------------------------- 
   // This image is okay, we can cache its thumbnail now 
   // -------------------------------- 

   if($pic_filetype = '.gif') 
   { 
      $gd_errored = FALSE; 

      switch ($pic_filetype) 
      { 
         case '.jpg': 
            $read_function = 'imagecreatefromjpeg'; 
            break; 
         case '.png': 
            $read_function = 'imagecreatefrompng'; 
            break; 
         case '.gif': 
            $read_function = 'imagecreatefrompng'; 
            break;			
      } 

      $src = @$read_function($path  . $pic_filename); 

      if (!$src) 
      { 
         $gd_errored = TRUE; 
         $pic_thumbnail = ''; 
      } 
      else if( ($pic_width > $config_thumb_width) or ($pic_height > $config_thumb_height) ) 
      { 
         // Resize it 
         if ($pic_width > $pic_height) 
         { 
            $thumbnail_width = $config_thumb_width; 
            $thumbnail_height = $config_thumb_width * ($pic_height/$pic_width); 
         } 
         else 
         { 
            $thumbnail_height = $config_thumb_height; 
            $thumbnail_width = $config_thumb_height * ($pic_width/$pic_height); 
         } 

         $thumbnail = @imagecreatetruecolor($thumbnail_width, $thumbnail_height); 

         $resize_function = 'imagecopyresampled'; 

         @$resize_function($thumbnail, $src, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $pic_width, $pic_height); 
      } 
      else 
      { 
         $thumbnail = $src; 
      } 

      if (!$gd_errored) 
      { 
         $pic_thumbnail = $pic_filename; 

         // Write to disk 
         switch ($pic_filetype) 
         { 
            case '.jpg': 
               @imagejpeg($thumbnail, $thumb_path . $pic_thumbnail, $resizequality); 
               break; 
            case '.png': 
               @imagepng($thumbnail, $thumb_path . $pic_thumbnail); 
               break;
			case '.gif': 
               @imagepng($thumbnail, $thumb_path . $pic_thumbnail); 
               break;    
         } 

         @chmod($thumb_path . $pic_thumbnail, 0777); 

      } // End IF $gd_errored 

   } // End Thumbnail Cache 


  // -------------------------------------- 
  // OK lets resize the original picture 
  // -------------------------------------- 

  if($pic_filetype = '.gif') 
  { 
    $gd_errored = FALSE; 

    switch ($pic_filetype) 
    { 
      case '.jpg': 
        $read_function = 'imagecreatefromjpeg'; 
        break; 
      case '.png': 
        $read_function = 'imagecreatefrompng'; 
        break; 
	  case '.gif': 
        $read_function = 'imagecreatefrompng'; 
        break; 
    } 

    $src = @$read_function($path  . $pic_filename); 

    if (!$src) 
    { 
      $gd_errored = TRUE; 
      $pic_resize = ''; 
    } 
    else if( ($pic_width > $config_width) or ($pic_height > $config_height) ) 
    { 

      // Write to disk 
      switch ($pic_filetype) 
      { 
        case '.jpg': 
          @imagejpeg($resize, $path . $pic_resize, $resizequality); 
          break; 
        case '.png': 
          @imagepng($resize, $path . $pic_resize); 
          break; 
		case '.gif': 
          @imagepng($resize, $path . $pic_resize); 
          break;   
      } 

      @chmod($path . $pic_resize, 0777); 

    } // End IF $gd_errored 

  } // End Picture Resize
  
echo "<b>Vorschau:</b><br>"; 
echo "<a href=\"".$deindomain.$path.$pic_filename."\" target=\"_blank\"><img src=\"".$deindomain.$thumb_path.$pic_filename."\" border=0></a><br><br>";

echo "<b>Direkter Link:</b><br>"; 
echo "".$deindomain.$path.$pic_filename."<br><br>";
  
echo "<b>BB Code (1):</b><br>"; 
echo "[IMG]".$deindomain.$path.$pic_filename."[IMG]<br><br>";
  
echo "<b>BB Code (2):</b><br>"; 
echo "[IMG]".$deindomain.$thumb_path.$pic_filename."[IMG]<br><br>";

echo "<b>Thumbnail für Webseiten:</b><br>"; 



   } 
} else { 

?>

Link zur seite: http://upload.cyber-gfx.de/index.php

Kann mir da jemand Helfen?

MFG
 
Hallo,

ich glaub, Dein Fehler liegt in der Thumbnail - Funktion bei:

PHP:
           case '.gif':  
            $read_function = 'imagecreatefrompng';  
            break;   }

Müsste das nicht $read_function = 'imagecreatefromgif'; heißen?

Das Gleiche müsste für Deine Image - Resizing - Funktion weiter unten gelten, da steht der selbe Code in deiner switch-Anweisung.

Gruß Thor
 
Zurück