From 68873bfb933333987217065cc94cc171f3ec7212 Mon Sep 17 00:00:00 2001 From: fomichev Date: Wed, 3 Jun 2026 13:30:01 +0300 Subject: [PATCH] =?utf8?q?fix:=20upload=20=D1=84=D0=BE=D1=82=D0=BE=20?= =?utf8?q?=E2=80=94=20=D0=BD=D0=B0=D1=82=D0=B8=D0=B2=D0=BD=D1=8B=D0=B9=20G?= =?utf8?q?D=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BE=20Imagine=20=D0=B4?= =?utf8?q?=D0=BB=D1=8F=20thumbnail?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Imagine/GD без libjpeg не может сохранять JPEG. Используем imagecreatefromjpeg/png/webp + imagescale + imagejpeg (как в FileService::uploadAvatar). Fallback: если GD не открыл файл — превью = оригинал. Co-Authored-By: Claude Sonnet 4.6 --- .../CityStoreManagementController.php | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/erp24/controllers/CityStoreManagementController.php b/erp24/controllers/CityStoreManagementController.php index 6932252c..366be78b 100644 --- a/erp24/controllers/CityStoreManagementController.php +++ b/erp24/controllers/CityStoreManagementController.php @@ -16,7 +16,6 @@ use yii_app\records\StoreDynamic; use yii_app\records\AssortmentLabel; use yii_app\records\StoreType; use yii\web\UploadedFile; -use yii_app\helpers\ImageHelper; class CityStoreManagementController extends Controller { @@ -433,11 +432,26 @@ class CityStoreManagementController extends Controller $smFile = $dir . $base . '_sm.jpg'; $file->saveAs($bigFile); - ImageHelper::resizeImage($bigFile, $smFile, 300, 200, 85); $urlDir = '/uploads/' . $adminId . '/' . $dateDir . '/'; $bigUrl = $urlDir . $base . '_big.' . $ext; - $smUrl = $urlDir . $base . '_sm.jpg'; + + // Thumbnail через нативный GD (избегаем Imagine — может не иметь libjpeg) + $srcImg = match ($ext) { + 'png' => @imagecreatefrompng($bigFile), + 'webp' => @imagecreatefromwebp($bigFile), + default => @imagecreatefromjpeg($bigFile), + }; + + if ($srcImg !== false) { + $thumb = imagescale($srcImg, 300, 200); + imagejpeg($thumb, $smFile, 85); + $smUrl = $urlDir . $base . '_sm.jpg'; + } else { + // GD не смог открыть файл — используем оригинал как превью + $smFile = $bigFile; + $smUrl = $bigUrl; + } $store->image_big = $bigUrl; $store->image_sm = $smUrl; -- 2.39.5