Image Upload and Re-size PHP

Sometimes you need to upload and resize image files using PHP, and here you will find the simplest PHP snippet that takes care of your uploaded image files. This snippet should work as it is, but there are several other methods you can combine with it to create a proper functional image uploader, for example you can take a look at Ajax and PHP based image uploader here. The first thing you need to do is create a HTML form page, where a file input field should be included within the FORM tag. For example:
HTML
1234
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="image_file" />
<input type="submit" value="Send Image" />
</form>
Next thing you want to do is create a PHP page with snippet below. Maximum image size is 500 by default, which you can change as per your needs, and destination folder as well. Just make sure path is correct and writable.
PHP
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
if(isset($_FILES['image_file']))
{
	$max_size = 500; //max image size in Pixels
	$destination_folder = '/root/path/to/image/files';
	
	$image_name = $_FILES['image_file']['name']; //file name
	$image_size = $_FILES['image_file']['size']; //file size
	$image_temp = $_FILES['image_file']['tmp_name']; //file temp
	$image_type = $_FILES['image_file']['type']; //file type


	switch(strtolower($image_type)) //determine uploaded image type 
		{
			//Create new image from file
			case 'image/png': 
				$image_resource =  imagecreatefrompng($image_temp);
				break;
			case 'image/gif':
				$image_resource =  imagecreatefromgif($image_temp);
				break;          
			case 'image/jpeg': case 'image/pjpeg':
				$image_resource = imagecreatefromjpeg($image_temp);
				break;
			default:
				$image_resource = false;
		}
	
	if($image_resource){
		//Copy and resize part of an image with resampling
		list($img_width, $img_height) = getimagesize($image_temp);
		
	    //Construct a proportional size of new image
		$image_scale        = min($max_size / $img_width, $max_size / $img_height); 
		$new_image_width    = ceil($image_scale * $img_width);
		$new_image_height   = ceil($image_scale * $img_height);
		$new_canvas         = imagecreatetruecolor($new_image_width , $new_image_height);

	    //resize image with new height and width
		if(imagecopyresampled($new_canvas, $image_resource ,0, 0, 0, 0, $new_image_width, $new_image_height, $img_width, $img_height))
		{
			
			if(!is_dir($destination_folder)){ //create dir if it doesn't exist
				echo (mkdir($destination_folder))?'New folder Created':'Could create new folder';
			}
			
			//Save as jpeg image file
			switch(strtolower($image_type))
				{
					case 'image/png':
						imagepng($new_canvas, $destination_folder.'/'.$image_name);
						break;
					case 'image/gif':
						imagegif($new_canvas, $destination_folder.'/'.$image_name);
						break;          
					case 'image/jpeg': case 'image/pjpeg':
						imagejpeg($new_canvas, $destination_folder.'/'.$image_name, 80);
						break;
				}
		}
	}
}