File upload problem in IE, but not Firefox?

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
jaccrock
Forum Newbie
Posts: 17
Joined: Wed May 17, 2006 1:05 pm

File upload problem in IE, but not Firefox?

Post by jaccrock »

Hi,

I am working on a site were I need to upload images and resize them to thumbnails. I followed the tutorial and it works fine for firefox, but not ie.

Here are some of the errors I have been getting:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/.ginko/jaccrock/jcstrategies.com/jeff/admin/featured_listings.php on line 131

Warning: imagesx(): supplied argument is not a valid Image resource in /home/.ginko/jaccrock/jcstrategies.com/jeff/admin/featured_listings.php on line 141

Warning: imagesy(): supplied argument is not a valid Image resource in /home/.ginko/jaccrock/jcstrategies.com/jeff/admin/featured_listings.php on line 141

Warning: imagesx(): supplied argument is not a valid Image resource in /home/.ginko/jaccrock/jcstrategies.com/jeff/admin/featured_listings.php on line 155

Warning: imagesy(): supplied argument is not a valid Image resource in /home/.ginko/jaccrock/jcstrategies.com/jeff/admin/featured_listings.php on line 156

Warning: imagecreatetruecolor(): Invalid image dimensions in /home/.ginko/jaccrock/jcstrategies.com/jeff/admin/featured_listings.php on line 158

Warning: imagesx(): supplied argument is not a valid Image resource in /home/.ginko/jaccrock/jcstrategies.com/jeff/admin/featured_listings.php on line 159

Warning: imagesy(): supplied argument is not a valid Image resource in /home/.ginko/jaccrock/jcstrategies.com/jeff/admin/featured_listings.php on line 159

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/.ginko/jaccrock/jcstrategies.com/jeff/admin/featured_listings.php on line 159
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

AND SOME CODE:

Code: Select all

while($_FILES['image_' . $a]['name'] != "")
			{
				
				$filename = $_FILES['image_' . $a]['name'];
				$temporary_name = $_FILES['image_' . $a]['tmp_name'];
				$mimetype = $_FILES['image_' . $a]['type'];
				$filesize = $_FILES['image_' . $a]['size'];
				
				switch($mimetype) 
				{
					case "image/jpg":
					case "image/jpeg":
						$i = imagecreatefromjpeg($temporary_name);
						break;
					case "image/gif":
						$i = imagecreatefromgif($temporary_name);
						break;
					case "image/png":
						$i = imagecreatefrompng($temporary_name);
						break;
				}
			
				unlink($temporary_name); 														// deletes the uploaded file
				
				if(imagejpeg($i,"../uploads/" . $_POST['mlsid'] . "_" . $a . ".jpg",80))		// saves a copy of original image uploaded
					$images_uploaded = "trUE";
				else
					$images_uploaded = "FALSE";
				
				$sql .= ", '../uploads/" . $_POST['mlsid'] . "_" . $a . ".jpg'";
				
				$dest_x = 150;
				$dest_y = 150;
				
				if (imagesx($i) > $dest_x or imagesy($i) > $dest_y) {
																								// Is the width of the original bigger than the height?
				if (imagesx($i) >= imagesy($i)) 
				{
					$thumb_x = $dest_x;
					$thumb_y = imagesy($i)*($dest_x/imagesx($i));
				} else {
					$thumb_x = imagesx($i)*($dest_y/imagesy($i));
					$thumb_y = $dest_y;
				}
				} 
				else 
				{
																								// Using the original dimensions
					$thumb_x = imagesx($i);
					$thumb_y = imagesy($i);
				}
				$thumb = imagecreatetruecolor($thumb_x,$thumb_y); 
				imagecopyresampled($thumb, $i ,0, 0, 0, 0, $thumb_x, $thumb_y, imagesx($i), imagesy($i)); 
				if(imagejpeg($thumb, "../thumbnails/" . $_POST['mlsid'] . "_" . $a . ".jpg", 80))
					$images_uploaded = "trUE";
				else
					$images_uploaded = "FALSE";
				
				$sql .= ", '../thumbnails/" . $_POST['mlsid'] . "_" . $a . ".jpg'";
				
				$a++;
			}

Any ideas would be greatly appreciated!
User avatar
thomas777neo
Forum Contributor
Posts: 214
Joined: Mon Mar 10, 2003 6:12 am
Location: Johannesburg,South Africa

Post by thomas777neo »

I normally use the is_resource function in my code to avoid this issue.

e.g.

Code: Select all

<?php
$thumb = imagecreatetruecolor($thumb_x,$thumb_y);

if (is_resource($thumb) === true)
{
    // do whatever
}
    else
    {
        // output error
    }
?>
This makes it easier to locate where is is not creating the resource, then you can attend to the problem from there. Might also be that headers are sent before you create the resource.
Post Reply