How come my PHP code to create thumbnails works on my local machine but not on production?

by on April 7, 2011

Q: Code does not work on live site.

My code to auto generate thumbnails from a given folder works fine on localhost but when I test it on live website it does not create the thumbnails.

My code is:

<?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”);
?>

Any help is much apprecaited.

Thank you


3 Responses to “How come my PHP code to create thumbnails works on my local machine but not on production?”
  1.  

    Have you checked the error log to see if any errors are being thrown? I suspect your local system has a library installed that your production system does not.

     
  2.  

    I have asked my webhosting provider to see if the GD Library is installed and have been informed it is.

    I am not sure how to check the error log as I am totally new to web development.

    Do you know of any other code that works and will provide me with the same results.

    Thank you

     
  3.  

    Try changing the $dir_handle from 1 to -1 .

    I created the site ezhousefixes.com. I used your goal to create thumbnails based on directories, using a directory scan in 1 location and loading a resized thumb from another.

    If you still have problems, email me at bjday82@yahoo.com I also have YM and a corporate grade PHP server software for dynamic testing. I am positive I can resolve this for you 🙂

    Brandon