How come my PHP code to create thumbnails works on my local machine but not on production?
by qakbar on April 7, 2011Q: 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
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.
matt (Geek) says: on April 7, 2011 at 7:45 am
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
qakbar (Newbie) says: on April 8, 2011 at 5:30 am
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
bday82 (Newbie) says: on June 5, 2011 at 1:36 am