Первое, что вам нужно сделать, это создать страницу HTML-формы, где поле ввода файла должно быть включено в тег FORM. Например:
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="image_file" />
<input type="submit" value="Send Image" />
</form>
Следующее, что вам нужно сделать, это создать страницу PHP с приведенным ниже фрагментом кода. Максимальный размер изображения по умолчанию составляет 500, который вы можете изменить в соответствии с вашими потребностями, а также папку назначения. Просто убедитесь, что путь правильный и доступен для записи.
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;
}
}
}
}