sunucunun php ayarlarından imagick i aktif edip aşağıdaki kod bloğunu kullanarak yapabilirsiniz.
<?php
if ($_FILES['ayar_reklam1']['size'] > 3145728) {
    echo "Bu dosya boyutu çok büyük";
    $_SESSION['reklam'] = "no";
    Header("Location: ../reklam-ayar.php");
    exit;
}

$izinli_uzantilar = array('jpg', 'gif', 'png', 'ico', 'webp');

$uploads_dir = '../../dimg';
$tmp_name = $_FILES['ayar_reklam1']['tmp_name'];
$name = $_FILES['ayar_reklam1']['name'];

// Dosya uzantısını doğrula
$ext = strtolower(pathinfo($name, PATHINFO_EXTENSION));
if (!in_array($ext, $izinli_uzantilar) && !empty($name)) {
    echo "Bu uzantı kabul edilmiyor";
    $_SESSION['reklam'] = "no";
    Header("Location: ../reklam-ayar.php");
    exit;
}

// Dosya içeriğini kontrol et
if (!empty($tmp_name)) {
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $mime_type = finfo_file($finfo, $tmp_name);
    if (!$mime_type || !in_array($mime_type, array('image/jpeg', 'image/gif', 'image/png', 'image/x-icon', 'image/webp'))) {
        echo "Geçersiz dosya türü";
        $_SESSION['reklam'] = "no";
        Header("Location: ../reklam-ayar.php");
        exit;
    }
    finfo_close($finfo);
}

// Güvenli dosya adı oluştur
$benzersizsayi4 = rand(20000, 32000);
$refimgyol = substr($uploads_dir, 6) . "/" . $benzersizsayi4 . $name;
$bos = "0";
$target_path = "$uploads_dir/$benzersizsayi4$name";

// Dosyayı yükle
if (!empty($tmp_name)) {
    if (!move_uploaded_file($tmp_name, $target_path)) {
        echo "Dosya yükleme hatası";
        $_SESSION['reklam'] = "no";
        Header("Location: ../reklam-ayar.php");
        exit;
    }
}

// Resmi WebP'ye dönüştür
if (extension_loaded('imagick')) {
    $imagick = new \Imagick($target_path);
    $imagick->setImageFormat('webp');
    $webpPath = "$uploads_dir/$benzersizsayi4" . pathinfo($name, PATHINFO_FILENAME) . ".webp";
    $imagick->writeImage($webpPath);
    $imagick->clear();
    $imagick->destroy();

    // WebP formatında dosya yolu güncelle
    $refimgyol = substr($uploads_dir, 6) . "/" . $benzersizsayi4 . pathinfo($name, PATHINFO_FILENAME) . ".webp";

    // Orjinal dosyayı sil
    unlink($target_path);
}

// Diğer işlemler devam eder...
if (empty($name)) {
    $_SESSION['reklam'] = "ok";
    Header("Location: ../reklam-ayar.php");
} else {
    $resimsilunlink = $db->query("SELECT ayar_reklam1 FROM ayar WHERE ayar_id=0")->fetch(PDO::FETCH_ASSOC);
    if ($resimsilunlink['ayar_reklam1'] && !empty($tmp_name)) {
        // Silme işlemi gerçekleştirme
        unlink("../../" . $resimsilunlink['ayar_reklam1']);
    }
 
    $duzenle = $db->prepare("UPDATE ayar SET ayar_reklam1=:reklam WHERE ayar_id=0");
    $duzenle->bindParam(':reklam', $refimgyol);
    $update = $duzenle->execute();
 
    if ($update) {
        $_SESSION['reklam'] = "ok";
        Header("Location: ../reklam-ayar.php");
    } else {
        $_SESSION['reklam'] = "no";
        Header("Location: ../reklam-ayar.php");
    }
}
?>