Ik gebruik onderstaand script om afbeeldingen te uploaden en er thumnails van te maken. Dat werkt allemaal prima, alleen "stopt" het script soms juist voor het aanmaken van de thumbnails. Waarom is mij niet precies duidelijk.

Ziet iemand een fout in het script?

<?
$vastgoed_id = $_POST['vastgoed_id'];
$imagefile = $_FILES['imagefile'];

echo '<b>$_FILES[\'imagefile\']</b>:' . '<br />';

if (($imagefile['type'] == "image/jpeg") || ($imagefile['type'] == "image/pjpeg")) {
$base_dir = "../../upload/berben/" . $vastgoed_id;
$orig_dir = $base_dir . "/origineel";
$klein_dir = $base_dir . "/klein";
if (!is_dir($base_dir)) {
mkdir($base_dir, 0755);
}
if (!is_dir($orig_dir)) {
mkdir($orig_dir, 0755);
}
if (!is_dir($klein_dir)) {
mkdir($klein_dir, 0755);
}
$uploadfile = $orig_dir . '/' . $imagefile['name'];
if (is_uploaded_file($imagefile['tmp_name'])) {
move_uploaded_file($imagefile['tmp_name'], $uploadfile);
@chmod($uploadfile, 0644);
}
$image_file = $imagefile['name'];
$saved_image = $orig_dir . '/' . $imagefile['name'];

//variables
$thumbwidth = 100;
$imagequality = 100;

echo "<br />Copy Done...." . '<br />';
echo '<br />';
echo '$imagefile[\'name\'] = ' . $imagefile['name'] . "<br>";
echo '$imagefile[\'size\'] = ' . $imagefile['size'] . "<br>";
echo '$imagefile[\'type\'] = ' . $imagefile['type'] . "<br>";

//grab data
$thumbimage = $klein_dir . '/' . $image_file;
$thumb_exists = file_exists($thumbimage);
$size = getimagesize($saved_image);

echo '<br />';
echo '<b>getimagesize($imagefile[\'name\'])</b>' . '<br />';
foreach ($size as $key => $value) {
echo $tab . $key . ' => ' . $value . '<br />';
}

$width = $size[0];
$height = $size[1];
$type = $size[2];

echo '<br>';
echo 'width : ' . $width . '<br>';
echo 'height: ' . $height . '<br>';
echo 'type : ' . $type . '<br>';
echo '<br>';

//create thumb
if (!$thumb_exists) {
switch ($type) {
case 1 :
$im = imagecreatefromgif($saved_image);
break;
case 2 :
$im = imagecreatefromjpeg($saved_image);
break;
case 3 :
$im = imagecreatefrompng($saved_image);
break;
}
$newwidth = $thumbwidth;
$newheight = ceil(($newwidth / $width) * $height);

echo '<br />';
echo '$newwidth = ' . $newwidth . '<br />';
echo '$newheight = ' . $newheight . '<br />';

$im2 = imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($im2, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
switch ($type) {
case 1:
imagegif($im2, $thumbimage);
break;
case 2:
imagejpeg($im2, $thumbimage, $imagequality);
break;
case 3:
imagepng($im2, $thumbimage);
break;
}
imagedestroy($im);
imagedestroy($im2);

echo '<br />';
echo 'grootte thumbnail: ' . filesize($thumbimage) . " in bytes" . '<br>';
echo '<br />';
echo "OK voor de kleine versie";
echo '<br />';
echo '<img src="' . $thumbimage . '" />';
}
} else {
echo "Opslaan ging mis. Dit formaat wordt niet ondersteund: (" . $_FILES['imagefile']['name'] . ")";
}
?>
Gd geinstaleerd?
Doet hij dat toevallig alleen bij gifjes? Want gif-support is vij nieuw. Zou je kunnen updaten om het probleem te verhelpen.

-Kijk of je error-reporting aan hebt staan in php.ini, dan kan je vaak zien WAAROM hij hangt. Nog een mogelijkheid voor debugging is even in de errorlog van apache kijken, en de syslog even napluizen. (even er van uitgegaan dat je GNU/linux\BSD draait)

Als dat het niet is, weet ik het niet. Het script draait goed bij mij.

Reageren