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