Задать вопрос
Encoderast
@Encoderast
frontend пытается что-то делать в backend

Как написать функцию изменения размера изображения на php?

Валар моргулис!

Жизненно необходимо сделать уменьшение изображения до необходимых пикселей, но как это сделать не знаю, нагуглился, видел разные коды, но как их приделать в свой код знаний не хватает, выручайте!

Есть action добавления товара:
Жмяк
/**
     * Action для страницы "Добавить товар"
     */
    public function actionCreate()
    {
        // Проверка доступа
        self::checkAdmin();

        // Получаем список категорий для выпадающего списка
        $categoriesList = Category::getCategoriesListAdmin();

        $months = array( 1 => 'января' , 'февраля' , 'марта' , 'апреля' , 'мая' , 'июня' , 'июля' , 'августа' , 'сентября' , 'октября' , 'ноября' , 'декабря' );

        // Обработка формы
        if (isset($_POST['submit'])) {
            // Если форма отправлена
            // Получаем данные из формы
            $options['name'] = $_POST['name'];
            $options['code'] = $_POST['code'];
            $options['price'] = $_POST['price'];
            $options['payment'] = $_POST['payment'];
            $options['category_id'] = $_POST['category_id'];
            $options['brand'] = $_POST['brand'];
            $options['moq'] = $_POST['moq'];
            $options['units'] = $_POST['units'];
            $options['availability'] = $_POST['availability'];
            $options['delivery'] = $_POST['delivery'];
            $options['short_description'] = $_POST['short_description'];
            $options['description'] = $_POST['description'];
            $options['add_date'] = date( 'j ' . $months[date( 'n' )] . ' Y' );
            $options['is_new'] = $_POST['is_new'];
            $options['is_recommended'] = $_POST['is_recommended'];
            $options['status'] = $_POST['status'];

            // Флаг ошибок в форме
            $errors = false;

            // При необходимости можно валидировать значения нужным образом
            if (!isset($options['name']) || empty($options['name'])) {
                $errors[] = 'Заполните поля';
            }

            if ($errors == false) {
                // Если ошибок нет
                // Добавляем новый товар
                $id = Product::createProduct($options);

                // Если запись добавлена
                if ($id) {
                    // Проверим, загружалось ли через форму изображение
                    if (is_uploaded_file($_FILES["image"]["tmp_name"])) {
                        // Если загружалось, переместим его в нужную папке, дадим новое имя
                        move_uploaded_file($_FILES["image"]["tmp_name"], $_SERVER['DOCUMENT_ROOT'] . "/upload/images/products/{$id}.jpg");
                    }
                };

                // Перенаправляем пользователя на страницу управлениями товарами
                header("Location: /admin/product");
            }
        }



т.е. эти 2 строчки кода у меня являются загрузчиком изображений в конкретную папку и при этом все поголовно переименовываются в jpg

Если не составит труда, то допишите этот код, что в нем должно находиться. Видел громоздкие функции, поэтому основной код желательно вывести отдельным кодом, к примеру через класс, а в самой функции указывались нужные размеры

Выручайте! Урок по обрезки, добавлению и прочими работами только через 42 урока по 30 минут каждый, а сделать нужно сейчас
  • Вопрос задан
  • 128 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
image.intervention.io

Большая библиотека для работы с фото, там тебе и изменения размера, обрезка, наложения водяного знака и много другое. Читай доку
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы