2011-04-07 174 views
0

下面的代码在localhost上正常工作,但不会在实时服务器上创建缩略图。即时创建缩略图

<?php 

$orig_directory = "../imagefolder"; //Full image folder 
$thumb_directory = "../imagefolder/thumbfolder"; //Thumbnail folder 

/* Opening the thumbnail directory and looping through all the thumbs: */ 
$dir_handle = @opendir($orig_directory); //Open Full image dirrectory 
if ($dir_handle > 1){ //Check to make sure the folder opened 

$allowed_types=array('jpg','jpeg','gif','png'); 
$file_parts=array(); 
$ext=''; 
$title=''; 
$i=0; 

while ($file = @readdir($dir_handle)) { 
    /* Skipping the system files: */ 
    if($file=='.' || $file == '..') continue; 

    $file_parts = explode('.',$file); //This gets the file name of the images 
    $ext = strtolower(array_pop($file_parts)); 

    /* Using the file name (withouth the extension) as a image title: */ 
    $title = implode('.',$file_parts); 
    $title = htmlspecialchars($title); 

    /* If the file extension is allowed: */ 
    if(in_array($ext,$allowed_types)) { 

     /* If you would like to inpute images into a database, do your mysql query here */ 

     /* The code past here is the code at the start of the tutorial */ 
     /* Outputting each image: */ 

     $nw = 100; 
     $nh = 100; 
     $source = "../imagefolder/{$file}"; 
     $stype = explode(".", $source); 
     $stype = $stype[count($stype)-1]; 
     $dest = "../imagefolder/thumbfolder/{$file}"; 

     $size = getimagesize($source); 
     $w = $size[0]; 
     $h = $size[1]; 

     switch($stype) { 
      case 'gif': 
       $simg = imagecreatefromgif($source); 
       break; 
      case 'jpg': 
       $simg = imagecreatefromjpeg($source); 
       break; 
      case 'png': 
       $simg = imagecreatefrompng($source); 
       break; 
     } 

     $dimg = imagecreatetruecolor($nw, $nh); 
     $wm = $w/$nw; 
     $hm = $h/$nw; 
     $h_height = $nh/2; 
     $w_height = $nw/2; 

     if($w> $h) { 
      $adjusted_width = $w/$hm; 
      $half_width = $adjusted_width/2; 
      $int_width = $w/$hm; 
      imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h); 
     } else { 
      imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h); 
     } 
      imagejpeg($dimg,$dest,100); 
     } 
} 

/* Closing the directory */ 
@closedir($dir_handle); 

} 
?> 

<?php //echo "Thumbnails succesfully created "; 
header("Refresh: 0; url=display_thumbs.php"); 
?> 

任何人都不知道什么是与代码worng。

回答

0

听起来像你需要看看你的文件权限。确保包含图像和该文件的文件夹具有写入权限。

0

您的PHP是否针对GD-1.8或更高版本编译的实时服务器上?它需要使用:

imagecreatefromjpeg 
imagecreatefromgif 
imagecreatefrompng