Wednesday 8 May 2013

Image Upload With Resize



Image Upload With Resize

Create following directory structure
ImageResize (foldername)
ImageUploadWithResize.php
delete_all_images.php
uploads (foldername add 777 permission to this folder)

ImageUploadWithResize.php

<?php
//Define Memory Limit for large images so that we do not get "Allowed memory exhausted"
ini_set("memory_limit", "200000000");


// upload the file
if ((isset($_POST["submitted_form"])) && ($_POST["submitted_form"] == "image_upload_form")) {
            // file needs to be jpg,gif,bmp,x-png and 4 MB max
            if (($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg" || $_FILES["image_upload_box"]["type"] == "image/gif" || $_FILES["image_upload_box"]["type"] == "image/x-png") && ($_FILES["image_upload_box"]["size"] < 4000000))
            {
                        // some settings
                        $max_upload_width = 2592; $max_upload_height = 1944;
                        // if user chosed properly then scale down the image according to user preferances
                        if(isset($_REQUEST['max_width_box']) and $_REQUEST['max_width_box']!='' and $_REQUEST['max_width_box']<=$max_upload_width){
                                    $max_upload_width = $_REQUEST['max_width_box'];
                        }   
                        if(isset($_REQUEST['max_height_box']) and $_REQUEST['max_height_box']!='' and $_REQUEST['max_height_box']<=$max_upload_height){
                                    $max_upload_height = $_REQUEST['max_height_box'];
                        }         

                        // if uploaded image was JPG/JPEG
            if($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg")
{         
                                    $image_source = imagecreatefromjpeg($_FILES["image_upload_box"]["tmp_name"]);
                        }                     
                        // if uploaded image was GIF
                        if($_FILES["image_upload_box"]["type"] == "image/gif"){
                                    $image_source = imagecreatefromgif($_FILES["image_upload_box"]["tmp_name"]);
                        }         
                        // BMP doesn't seem to be supported so remove it form above image type test (reject bmps)           
                        // if uploaded image was BMP
                        if($_FILES["image_upload_box"]["type"] == "image/bmp"){          
                                    $image_source = imagecreatefromwbmp($_FILES["image_upload_box"]["tmp_name"]);
                        }                                 
                        // if uploaded image was PNG
                        if($_FILES["image_upload_box"]["type"] == "image/x-png"){
                                    $image_source = imagecreatefrompng($_FILES["image_upload_box"]["tmp_name"]);
                        }
                       
                       
                        $remote_file = "uploads/".$_FILES["image_upload_box"]["name"];
                        imagejpeg($image_source,$remote_file,100);
                        chmod($remote_file,0644);
                       
                        // get width and height of original image
                        list($image_width, $image_height) = getimagesize($remote_file);
           
                        if($image_width>$max_upload_width || $image_height >$max_upload_height){
                                    $proportions = $image_width/$image_height;
                                   
                                    if($image_width>$image_height){
                                                $new_width = $max_upload_width;
                                                $new_height = round($max_upload_width/$proportions);
                                    }                     
                                    else{
                                                $new_height = $max_upload_height;
                                                $new_width = round($max_upload_height*$proportions);
                                    }                     
                                   
                                   
                                    $new_image = imagecreatetruecolor($new_width , $new_height);
                                    $image_source = imagecreatefromjpeg($remote_file);
                                   
                                    imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
                                    imagejpeg($new_image,$remote_file,100);
                                   
                                    imagedestroy($new_image);
                        }
                       
                        imagedestroy($image_source);
                       
                       
                        header("Location: ImageUploadWithResize.php?upload_message=image uploaded&upload_message_type=success&show_image=".$_FILES["image_upload_box"]["name"]);
                        exit;
            }
            else{
                        header("Location: ImageUploadWithResize.php?upload_message=make sure the file is jpg, gif or png and that is smaller than 4MB&upload_message_type=error");
                        exit;
            }
}
?>

<html>
<head><title>Image Upload with resize</title>
<style type="text/css">
<!--
.upload_message_success {padding:4px;background-color:#009900;border:1px solid #006600;color:#FFFFFF;margin-top:10px;margin-bottom:10px;}
.upload_message_error {padding:4px;background-color:#CE0000;border:1px solid #990000;color:#FFFFFF;margin-top:10px;margin-bottom:10px;}
-->
</style></head>
<body>
<h1 style="margin-bottom: 0px">Upload an image</h1>
<?php if(isset($_REQUEST['upload_message'])){?>
            <div class="upload_message_<?php echo $_REQUEST['upload_message_type'];?>">
                        <?php echo htmlentities($_REQUEST['upload_message']);?>
            </div>
<?php }?>
<form action="#" method="post" enctype="multipart/form-data" name="image_upload_form" id="image_upload_form" style="margin-bottom:0px;">
            <label>Image file, maximum 4MB. it can be jpg, gif,  png:</label><br />
    <input name="image_upload_box" type="file" id="image_upload_box" size="40" />
    <input type="submit" name="submit" value="Upload image" /><br /><br />
            <label>Scale down image? (2592 x 1944 px max):</label><br />
            <input name="max_width_box" type="text" id="max_width_box" value="1024" size="4"> x
            <input name="max_height_box" type="text" id="max_height_box" value="768" size="4"> px.
    <br /><br />
            <p style="padding:5px; border:1px solid #EBEBEB; background-color:#FAFAFA;">
                        <strong>Notes:</strong><br />
                        The image will not be resized to this exact size; it will be scalled down so that neider width or height is larger than specified.<br />
                        After you uploaded images and made tests on our server please <a href="delete_all_images.php">delete all uploaded images </a> :)<br />
            </p>
            <input name="submitted_form" type="hidden" id="submitted_form" value="image_upload_form" />
</form>
<?php if(isset($_REQUEST['show_image']) and $_REQUEST['show_image']!=''){?>
<p><img src="uploads/<?php echo $_REQUEST['show_image'];?>" /></p>
<?php }?>
</body>
</html>

delete_all_images.php

            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Delete all images</title>
</head>

<body>

<?
   $dir = 'uploads/';
   // open specified directory
   $dirHandle = opendir($dir);
   $total_deleted_images = 0;
   while ($file = readdir($dirHandle)) {
      // if not a subdirectory and if filename contains the string '.jpg'
      if(!is_dir($file)) {
         // update count and string of files to be returned
                         unlink($dir.$file);
         echo 'Deleted file <b>'.$file.'</b><br />';
                         $total_deleted_images++;
      }
   }
   closedir($dirHandle);
            if($total_deleted_images=='0'){
                        echo 'There ware no files uploaded there.';
            }
            echo '<br />Thank you.';
            echo '<br /><a href="ImageUploadWithResize.php" title="Upload Image"> Upload New Image </a>';

?>

</body>
</html>

No comments:

Post a Comment

List OF BANK PAN Numbers

List OF BANK PAN Numbers Bank/Home Loan Providers PAN Number Allahabad Bank AACCA8464F Andhra Bank AABCA7375C Axis Bank...