How to upload and resize image in PHP ?
After a long time i am going to share something with you friends. But Anyway Today i will show you how to generate thumbnail image in PHP. Here i will make very simple code to upload image and resize that image too.
As we know well images are very important to display on our website. As specially when if you require small size of image and you are displaying big image then it can be take more time to load. So your photos should be resize able or need to generate thumbnail when user upload those images. So here i will explain how to create thumbnail image in your code php project.
Here, i use core php code so you can easily use in your project or any php framework like laravel, codeigniter, cackephp etc. In this example i will create two file as listed bellow:
index.php
pro.php
In this example you can generate thumbnail image of png, jpg, jpeg, gif too. So make sure you have to upload with given extension. So just let's see bellow code and copy paste in your file then check it.
index.php
<!DOCTYPE html>
<html>
<head>
<title>PHP Image resize to upload</title>
</head>
<body>
<div class="container">
<form action="pro.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="submit" value="Submit" />
</form>
</div>
</body>
</html>
pro.php
<?php
if(isset($_POST["submit"])) {
if(is_array($_FILES)) {
$file = $_FILES['image']['tmp_name'];
$sourceProperties = getimagesize($file);
$fileNewName = time();
$folderPath = "upload/";
$ext = pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION);
$imageType = $sourceProperties[2];
switch ($imageType) {
case IMAGETYPE_PNG:
$imageResourceId = imagecreatefrompng($file);
$targetLayer = imageResize($imageResourceId,$sourceProperties[0],$sourceProperties[1]);
imagepng($targetLayer,$folderPath. $fileNewName. "_thump.". $ext);
break;
case IMAGETYPE_GIF:
$imageResourceId = imagecreatefromgif($file);
$targetLayer = imageResize($imageResourceId,$sourceProperties[0],$sourceProperties[1]);
imagegif($targetLayer,$folderPath. $fileNewName. "_thump.". $ext);
break;
case IMAGETYPE_JPEG:
$imageResourceId = imagecreatefromjpeg($file);
$targetLayer = imageResize($imageResourceId,$sourceProperties[0],$sourceProperties[1]);
imagejpeg($targetLayer,$folderPath. $fileNewName. "_thump.". $ext);
break;
default:
echo "Invalid Image type.";
exit;
break;
}
move_uploaded_file($file, $folderPath. $fileNewName. ".". $ext);
echo "Image Resize Successfully.";
}
}
function imageResize($imageResourceId,$width,$height) {
$targetWidth =200;
$targetHeight =200;
$targetLayer=imagecreatetruecolor($targetWidth,$targetHeight);
imagecopyresampled($targetLayer,$imageResourceId,0,0,0,0,$targetWidth,$targetHeight, $width,$height);
return $targetLayer;
}
?>
Create Upload Folder
In this step, you don't have to do more, you have to simple create "upload" folder in your root directory. So let's simple create upload folder now.
Ok, now we are ready to run our example. So let's run bellow command on your root directory for quick run:
php -S localhost:8000
Now you can open bellow URL on your browser:
http://localhost:8000
I hope it can help you...

Hardik Savani
I'm a full-stack developer, entrepreneur and owner of Aatman Infotech. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- Simple PHP Ajax Form Validation Example from scratch
- jQuery Ajax X-editable bootstrap plugin to update records in PHP Example
- PHP MySQL - Simple Image Gallery CRUD example from scratch
- Ajax Image Upload using PHP and jQuery Example from scratch
- PHP - jquery ajax crop image before upload using croppie plugin
- Laravel Image Resize & Upload with Intervention Image Example
- Crop, Resize, Frames etc on Selected Image in PHP using Aviary