2011-04-07 100 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