lookout adlı üyeden alıntı: mesajı görüntüle
Edit: kendi kodunuzu gösterirseniz daha spesifik bir çözüm sunabilirim.



function handleImageUpload($uploadedFile) {
$allowedExtensions = ['gif', 'png', 'jpeg'];
$uploadPath = '/your/upload/directory/';

$originalFileName = $uploadedFile['name'];
$extension = pathinfo($originalFileName, PATHINFO_EXTENSION);

// WebP kontrolü
if ($extension === 'webp') {
// Eğer webp ise ek bir işlem yapma
return;
}

// Desteklenen dosya uzantılarını kontrol et
if (!in_array(strtolower($extension), $allowedExtensions)) {
echo 'Geçersiz dosya uzantısı. Lütfen gif, png veya jpeg dosyası yükleyin.';
return;
}

// Yüklenen dosyayı geçici bir klasöre taşı
$tempFilePath = $_FILES['file']['tmp_name'];
$tempFileName = uniqid('uploaded_', true) . '.' . $extension;
$tempDestination = $uploadPath . $tempFileName;

// Dosyayı webp'ye çevir ve boyutunu küçült
// Bu kısmı kendi ihtiyaçlarınıza göre özelleştirmeniz gerekebilir
$convertedFilePath = convertAndResizeToWebP($tempFilePath, $tempDestination);

// Eğer dönüştürme başarılıysa orijinal dosyayı sil
if ($convertedFilePath) {
unlink($tempFilePath);
}
}

function convertAndResizeToWebP($sourceFilePath, $destinationFilePath) {
// Dönüştürme ve boyut küçültme işlemlerini burada gerçekleştirin
// Örnek olarak, GD veya Imagick kullanabilirsiniz

// İşlem başarılıysa dönüştürülmüş dosyanın yolu, hata olursa false döndürün
// Örneğin:
// if (conversionAndResizeSuccessful) {
// return $destinationFilePath;
// } else
{
// return false;
// }
}
çok teşekkür ederim hocam benim kodum bu şekilde

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;
    }
}

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");
    }
}