Jump to content

Uploading multiple images and resizing


AdRock

Recommended Posts

I need to be able to upload multiple images and resize them.

 

I can get a single image to resize if i take out the while loop but when I try to get all images to resize, it doesn't work.  I get this output

 

ERROR: Wrong filetype (has to be a .jpg or .jpeg. Yours is

Notice: Undefined variable: file_ext in d:\Apache\htdocs\copy of multi-upload\addphoto.php on line 47

.ERROR: Wrong filetype (has to be a .jpg or .jpeg. Yours is

Notice: Undefined variable: file_ext in d:\Apache\htdocs\copy of multi-upload\addphoto.php on line 47

 

It doesn't detect the filetype even though it is a jpeg.

 

Is there something wrong with the while loop

This is the code for uploading and resizing an image

<?php
$idir = "images/";   // Path To Images Directory
$tdir = "images/thumbs/";   // Path To Thumbnails Directory
$twidth = "200";   // Maximum Width For Thumbnail Images
$theight = "150";   // Maximum Height For Thumbnail Images

$url = $_FILES['imagefile']['name'];   // Set $url To Equal The Filename For Later Use

while(list($key,$value) = each($url)) {
if(!empty($value)) {
	if ($_FILES['imagefile']['type'] == "image/jpg" || $_FILES['imagefile']['type'] == "image/jpeg" || $_FILES['imagefile']['type'] == "image/pjpeg") {
		$file_ext = strrchr($_FILES['imagefile']['name'], '.');   // Get The File Extention In The Format Of , For Instance, .jpg, .gif or .php
		$copy = copy($_FILES['imagefile']['tmp_name'][$key], "$idir" . $_FILES['imagefile']['name']);   // Move Image From Temporary Location To Permanent Location
		if ($copy) {   // If The Script Was Able To Copy The Image To It's Permanent Location
			print 'Image uploaded successfully.<br />';   // Was Able To Successfully Upload Image
			$simg = imagecreatefromjpeg("$idir" . $url);   // Make A New Temporary Image To Create The Thumbanil From
			$currwidth = imagesx($simg);   // Current Image Width
			$currheight = imagesy($simg);   // Current Image Height
			if ($currheight > $currwidth) {   // If Height Is Greater Than Width
				$zoom = $twidth / $currheight;   // Length Ratio For Width
				$newheight = $theight;   // Height Is Equal To Max Height
				$newwidth = $currwidth * $zoom;   // Creates The New Width
			} else {    // Otherwise, Assume Width Is Greater Than Height (Will Produce Same Result If Width Is Equal To Height)
				$zoom = $twidth / $currwidth;   // Length Ratio For Height
				$newwidth = $twidth;   // Width Is Equal To Max Width
				$newheight = $currheight * $zoom;   // Creates The New Height
			}
			$dimg = imagecreate($newwidth, $newheight);   // Make New Image For Thumbnail
			imagetruecolortopalette($simg, false, 256);   // Create New Color Pallete
			$palsize = ImageColorsTotal($simg);
			for ($i = 0; $i < $palsize; $i++) {   // Counting Colors In The Image
				$colors = ImageColorsForIndex($simg, $i);   // Number Of Colors Used
				ImageColorAllocate($dimg, $colors['red'], $colors['green'], $colors['blue']);   // Tell The Server What Colors This Image Will Use
			}
			imagecopyresized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight);   // Copy Resized Image To The New Image (So We Can Save It)
			imagejpeg($dimg, "$tdir" . $url);   // Saving The Image
			imagedestroy($simg);   // Destroying The Temporary Image
			imagedestroy($dimg);   // Destroying The Other Temporary Image
			print 'Image thumbnail created successfully.';   // Resize successful
		}
		else {
			print '<font color="#FF0000">ERROR: Unable to upload image.</font>';   // Error Message If Upload Failed
		}
	}
	else {
		print '<font color="#FF0000">ERROR: Wrong filetype (has to be a .jpg or .jpeg. Yours is ';   // Error Message If Filetype Is Wrong
		print $file_ext;   // Show The Invalid File's Extention
		print '.</font>';
	}
}
}
?>

Link to comment
https://forums.phpfreaks.com/topic/145119-uploading-multiple-images-and-resizing/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.