AdRock Posted February 13, 2009 Share Posted February 13, 2009 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 More sharing options...
phpSensei Posted February 13, 2009 Share Posted February 13, 2009 use in_array to validate for the file types Link to comment https://forums.phpfreaks.com/topic/145119-uploading-multiple-images-and-resizing/#findComment-761645 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.