изменить размер изображения, загруженного пользователем в php и mysqli

Я делаю простую загрузку и сохранение изображения в базе данных mysqli. Я могу загрузить изображение и сохранить его в базе данных, но при его отображении изображение будет отображаться в реальном размере, и оно слишком велико. Может ли кто-нибудь помочь мне добавить код для изменения размера изображений, загруженных пользователем? Просто измените размер для просмотра. Я не знаю, как это закодировать. Вот моя кодировка для index.php.

<html>
<head>
    <title>Upload an image</title>
</head>
<body>

<form action="index.php" method="POST" enctype="multipart/form-data">
    File:
    <input type="file" name="image" /> <input type="submit" value="Upload">
</form>

<?php

$db = "databaseimage";

//connect to database
$con = mysqli_connect("127.0.0.1", "root", "MyNewPass") or die (mysqli_error());
mysqli_select_db($con, $db) or die (mysqli_error($db));

//file properties
//tmp_name is a temporary file to store image
// Turn off error reporting
error_reporting(0);
$file = $_FILES['image']['tmp_name'];

if (!isset($file))
    echo "Please select an image.";
else
{
    //addslashes to prevent any mysql injection
    $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
    $image_name = addslashes($_FILES['image']['name']);
    // getimagesize will get the image size from the temporary files. this will return false value if it is not image.
    $image_size = getimagesize($_FILES['image']['tmp_name']);

    if ($image_size==FALSE)
        echo "That's not an image.";
    else
    {
        if (!$insert = mysqli_query ($con,"INSERT INTO store VALUES ('', '$image_name', '$image')"))
            echo "Problem uploading image!";
        else
        {
            $lastid = mysqli_insert_id($con);
            // id=1 will become a unique id for image. but we are using $lastid so that it can become like 1 or 2 or 3 and so on refer to image id stored in database
            echo "Image uploaded.<p />Your image:<p /><img src=get.php?id=$lastid>";
        }
    }
}

?>

</body>
</html>

Вот моя кодировка для получения изображения get.php

<?php

$db = "databaseimage";

//connect to database
$con = mysqli_connect("127.0.0.1", "root", "MyNewPass") or die (mysqli_error());
mysqli_select_db($con, $db) or die (mysqli_error($db));

$id = addslashes ($_REQUEST['id']);

//image given out to the user
$image = mysqli_query($con, "SELECT * FROM store WHERE id=$id"); //solved
$image = mysqli_fetch_assoc($image); //solved
$image = $image['image'];

// type of file changed to an image
header ("Content-type: image/jpeg");

echo $image;

?>

person Emerald    schedule 15.08.2015    source источник
comment
Изменить размер изображения легче сказать, чем сделать. Вам нужно будет использовать одну из нескольких библиотек, и StackOverflow не может предложить вам одну из них. Пожалуйста, остановитесь на одном, попытайтесь заставить это работать и задайте новый вопрос, как только вы столкнетесь с проблемой, которую не можете решить самостоятельно.   -  person Sumurai8    schedule 15.08.2015
comment
Извините, я просмотрел какой-то учебник, но я просто не понимаю его. Я действительно новичок в этом.   -  person Emerald    schedule 15.08.2015
comment
Что ж, начните здесь. Возможно, вам нужно установить библиотеку.   -  person Sumurai8    schedule 15.08.2015
comment
Я попробую, спасибо.   -  person Emerald    schedule 15.08.2015


Ответы (1)


Как участники уже упоминали, чтобы использовать доступные библиотеки, но, поскольку вы новичок и ЕСЛИ вы хотите показать все изображения определенного размера, вы можете сделать что-то вроде:

<?php 
echo '<img src="data:image/jpeg;base64,'.base64_encode( $image['image'] ).'" height= 100 width = 150/>';
?>
person DirtyBit    schedule 15.08.2015
comment
Извините, куда мне вставить этот код? Я пробовал, но результата нет. - person Emerald; 16.08.2015
comment
@Emerald Место, где вы пытаетесь повторить $image в вашем get.php - person DirtyBit; 16.08.2015