Hey, I don't know if this will be what you're looking for, but it's worth a shot 😉.
A while back I had the same problem you've run into. If I included the script on the upload, it wouldn't work on certain machines (predominantly Macs), but image uploading worked fine if I didn't use the script.
Here's what I did as a sort of compromise. I allowed a normal image upload, I just capped the image size at 150k or so, to make sure that large images weren't allowed. Then I resized the image on the fly when the page loaded. It now works every time without a problem, so give it a shot, you may like the results 😉.
Here's my code for image resizing, stored in resizeimage.php:
<?
if (!$max_width)
$max_width = 150;
if (!$max_height)
$max_height = 100;
$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if (($width <= $max_width) && ($height <= $max_height)) {
$tn_width = $width;
$tn_height = $height;
} elseif (($x_ratio * $height) < $max_height) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
} else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = ImageCreateFromJpeg($image);
$dst = imagecreatetruecolor($tn_width, $tn_height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
//USE THE TWO LINES BELOW, IF IMAGECREATETRUECOLOR DOESN'T EXIST
//$dst = ImageCreate($tn_width, $tn_height);
//ImageCopyResized($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
ImageJpeg($dst);
ImageDestroy($src);
ImageDestroy($dst);
?>
And here's the image call that I use when loading an image:
print "<img src=\"resizeimage.php?image=ImageName.jpg&max_width=50&max_height=77\" border=\"0\">";