Как адаптировать php код загружающий изображение?

У меня есть код который должен загружать картинку в создании товара. У меня возникла проблема с работоспособностью загрузки картинки, а в конечном итоге мне нужно чтобы в месте где должна загружаться картинка была возможность загрузить видео в формате mp4, я скинул только часть кода но, весь код был реализован с помощью урока по этой ссылке, в ней 11 пункт посвящен загрузке картинок. https://only-to-top.ru/blog/programming/2021-01-25-php-oop-mysql.html

<?php
// подключим файлы, необходимые для подключения к базе данных и файлы с объектами
include_once "config/database.php";
include_once "objects/product.php";
include_once "objects/category.php";

// получаем соединение с базой данных
$database = new Database();
$db = $database->getConnection();

// создадим экземпляры классов Product и Category
$product = new Product($db);
$category = new Category($db);
// установка заголовка страницы
$page_title = "Создание описания";

require_once "layout_header.php";
?>

<div class="right-button-margin">
    <a href="index.php" class="btn btn-default pull-right">Просмотр всего </a>
</div>

<!-- Здесь будет PHP код -->
<?php
// если форма была отправлена
if ($_POST)
{
    // установим значения свойствам товара
    $product->name = $_POST["name"];
    $product->price = $_POST["price"];
    $product->description = $_POST["description"];
    $product->category_id = $_POST["category_id"];
    $image = !empty($_FILES["image"]["name"])
    ? sha1_file($_FILES["image"]["tmp_name"]) . "-" . basename($_FILES["image"]["name"]) : "";
$product->image = $image;

    // создание товара
    if ($product->create()) {
        echo '<div class="alert alert-success">Товар был успешно создан.</div>';
    }

    // если не удается создать товар, сообщим об этом пользователю
    else {
        echo '<div class="alert alert-danger">Невозможно создать товар.</div>';
    }
    // пытаемся загрузить отправленный файл
// метод uploadPhoto() вернет сообщение об ошибке, в случае неудачи
echo $product->uploadPhoto();
}
?>

<!-- HTML-формы для создания товара -->
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"
    method="post"
    enctype="multipart/form-data"
>

    <table class="table table-hover table-responsive table-bordered">

        <tr>
            <td>Название</td>
            <td><input type="text" name="name" class="form-control" /></td>
        </tr>

        <tr>
            <td>Цена</td>
            <td><input type="text" name="price" class="form-control" /></td>
        </tr>

        <tr>
            <td>Описание</td>
            <td><textarea name="description" class="form-control"></textarea></td>
        </tr>

        <tr>
    <td>Изображение</td>
    <td><input type="file" name="image" /></td>
</tr>
              <?php
// читаем категории товаров из базы данных
$stmt = $category->read();

// помещаем их в выпадающий список
echo "<select class='form-control' name='category_id'>";
echo "<option>Выбрать категорию...</option>";

while ($row_category = $stmt->fetch(PDO::FETCH_ASSOC)) {
  extract($row_category);
  echo "<option value='{$id}'>{$name}</option>";
}

echo "</select>";
?>
            </td>
        </tr>

        <tr>
            <td></td>
            <td>
                <button type="submit" class="btn btn-primary">Создать</button>
            </td>
        </tr>

    </table>
</form>

<?php // подвал
require_once "layout_footer.php";
?>

Так же есть функция загрузки файла изображения

function uploadPhoto()
{
    $result_message = "";

    // если изображение не пустое, пробуем загрузить его
    if ($this->image) {

        // функция sha1_file() используется для создания уникального имени файла
        $target_directory = "uploads/";
        $target_file = $target_directory . $this->image;
        $file_type = pathinfo($target_file, PATHINFO_EXTENSION);

        // сообщение об ошибке пусто
        $file_upload_error_messages = "";
    }
    // убеждаемся, что файл - изображение
$check = getimagesize($_FILES["image"]["tmp_name"]);

if ($check !== false) {
    // отправленный файл является изображением
} else {
    $file_upload_error_messages .= "<div>Отправленный файл не является изображением.</div>";
}

// проверяем, разрешены ли определенные типы файлов
$allowed_file_types = array("jpg", "jpeg", "png", "gif");

if (!in_array($file_type, $allowed_file_types)) {
    $file_upload_error_messages .= "<div>Разрешены только файлы JPG, JPEG, PNG, GIF.</div>";
}

// убеждаемся, что файл не существует
if (file_exists($target_file)) {
    $file_upload_error_messages .= "<div>Изображение уже существует. Попробуйте изменить имя файла.</div>";
}

// убедимся, что отправленный файл не слишком большой (не может быть больше 1 МБ)
if ($_FILES["image"]["size"] > (1024000)) {
    $file_upload_error_messages .= "<div>Размер изображения не должен превышать 1 МБ.</div>";
}

// убедимся, что папка uploads существует, если нет, то создаём
if (!is_dir($target_directory)) {
    mkdir($target_directory, 0777, true);
}
// если $file_upload_error_messages всё ещё пуст
if (empty($file_upload_error_messages)) {

    // ошибок нет, пробуем загрузить файл
    if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
        // фото загружено
    } else {
        $result_message .= "<div class='alert alert-danger'>";
            $result_message .= "<div>Невозможно загрузить фото.</div>";
            $result_message .= "<div>Обновите запись, чтобы загрузить фото снова.</div>";
        $result_message .= "</div>";
    }
}

// если $file_upload_error_messages НЕ пусто
else {

    // это означает, что есть ошибки, поэтому покажем их пользователю
    $result_message .= "<div class='alert alert-danger'>";
        $result_message .= "{$file_upload_error_messages}";
        $result_message .= "<div>Обновите запись, чтобы загрузить фото.</div>";
    $result_message .= "</div>";
}
    return $result_message;
}
}

Ответы (0 шт):