user3764467
user3764467

Reputation:

reduce image size while uploading using the following PHP code used to upload image

Am trying to upload image to server using the following code Following are done with the given code below

Here is the code

 $file_name = $HTTP_POST_FILES['ufile']['name'];
 $random_digit = md5(rand() * time());
 $new_file_name = $random_digit . $file_name;
 $path = "upload/" . $new_file_name;
 if ($ufile != none) {
    if (copy($HTTP_POST_FILES['ufile']['tmp_name'], $path)) {
        echo "Successful<BR/>";
        echo "File Name :" . $new_file_name . "<BR/>";
        echo "File Size :" . $HTTP_POST_FILES['ufile']['size'] . "<BR/>";
        echo "File Type :" . $HTTP_POST_FILES['ufile']['type'] . "<BR/>";
    } else {
        echo "Error";
    }
 }

how to reduce image size with the given code

Upvotes: 4

Views: 16914

Answers (1)

sanoj lawrence
sanoj lawrence

Reputation: 993

Sure, it works fine. I use this class in PHP:

<?php

function thumbnail( $img, $source, $dest, $maxw, $maxh ) {      
    $jpg = $source.$img;

    if( $jpg ) {
        list( $width, $height  ) = getimagesize( $jpg ); //$type will return the type of the image
        $source = imagecreatefromjpeg( $jpg );

        if( $maxw >= $width && $maxh >= $height ) {
            $ratio = 1;
        }elseif( $width > $height ) {
            $ratio = $maxw / $width;
        }else {
            $ratio = $maxh / $height;
        }

        $thumb_width = round( $width * $ratio ); //get the smaller value from cal # floor()
        $thumb_height = round( $height * $ratio );

        $thumb = imagecreatetruecolor( $thumb_width, $thumb_height );
        imagecopyresampled( $thumb, $source, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height );

        $path = $dest.$img."_thumb.jpg";
        imagejpeg( $thumb, $path, 75 );
    }
    imagedestroy( $thumb );
    imagedestroy( $source );
}

?>

imagejpeg( $thumb, $path, 75 );

is where how much you want the size and quality of the image after uploading.

Calling in PHP script:

if( isset( $_FILES['img-content'] ) ) {
$img = str_replace( " ","_",$_FILES['img-content']['name'] );
move_uploaded_file( $_FILES['img-content']['tmp_name'], "../../images/content/".$img );
$source = "../../images/content/";
$dest = "../../images/thumb/";
thumbnail( $img, $source, $dest, 480, 400 );

Upvotes: 6

Related Questions