PHP Dosya Yükleme

PHP’de dosya yükleme işlemi genellikle HTML formu aracılığıyla gerçekleştirilir.

  1. HTML Formu Oluşturma (index.html):
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Dosya Yükleme Formu</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <label for="file">Dosya Seç:</label>
        <input type="file" name="file" id="file">
        <button type="submit" name="submit">Yükle</button>
    </form>
</body>
</html>
  1. PHP Dosya Yükleme (upload.php):
<?php
if(isset($_POST["submit"])) {
    $targetDir = "uploads/"; // Dosyanın yükleneceği klasör
    $targetFile = $targetDir . basename($_FILES["file"]["name"]); // Dosyanın tam yolu

    // Dosyayı yükler ve yükleme başarılıysa mesaj verir
    if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
        echo "Dosya başarıyla yüklendi.";
    } else {
        echo "Dosya yüklenirken bir hata oluştu.";
    }
}
?>

Bu örnek, dosyanın uploads klasörüne yüklenmesini sağlar. Klasörün yazma izinlerine sahip olduğunu ve güvenlik açısından dosya türlerini kontrol etmek için gerekli önlemlerin alındığını unutmayın.

Ayrıca, kullanıcı girişi veya diğer güvenlik konuları için gerekli önlemleri almalısınız. Bu örnek, temel bir dosya yükleme işlemini gösterir, ancak bir üretim ortamında daha fazla güvenlik önlemi almanız gerekebilir.

Dosya türünü sınırlamak için, yükleme işlemi öncesinde dosya uzantısını kontrol etmeniz gerekir. Aşağıda, sadece belirli dosya türlerine izin veren bir örnek görebilirsiniz. Dosyanın gerçekten bir resim olup olmadığını kontrol etmek için getimagesize() fonksiyonunu kullanabilirsiniz. Bu fonksiyon, bir resmin genişliği, yüksekliği ve türü gibi bilgileri sağlar.

<?php
if(isset($_POST["submit"])) {
    $targetDir = "uploads/"; // Dosyanın yükleneceği klasör
    $targetFile = $targetDir . basename($_FILES["file"]["name"]); // Dosyanın tam yolu
    $uploadOk = 1;

    // Dosya uzantısını kontrol et
    $fileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
    $allowedExtensions = array("jpg", "jpeg", "png", "gif");

    if (!in_array($fileType, $allowedExtensions)) {
        echo "Sadece JPG, JPEG, PNG ve GIF dosyalarına izin verilir.";
        $uploadOk = 0;
    }

    // Dosyanın gerçekten bir resim olup olmadığını kontrol et
    if ($uploadOk) {
        $imageSize = getimagesize($_FILES["file"]["tmp_name"]);
        if ($imageSize === false) {
            echo "Dosya bir resim değil.";
            $uploadOk = 0;
        }
    }

    // Dosyayı yükler ve yükleme başarılıysa mesaj verir
    if ($uploadOk && move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
        echo "Dosya başarıyla yüklendi.";
    } else {
        echo "Dosya yüklenirken bir hata oluştu.";
    }
}
?>

Bu örnekte, sadece “jpg”, “jpeg”, “png”, “gif” uzantılarına sahip dosyalara izin veriliyor. $allowedExtensions dizisine istediğiniz uzantıları ekleyebilir veya kaldırabilirsiniz.

getimagesize() fonksiyonu, yüklenen dosyanın bir resim olup olmadığını kontrol etmek için kullanılmaktadır. Eğer dosya bir resim değilse, kullanıcıya uygun bir hata mesajı verilir. Bu, yüklenen dosyanın içeriğini daha doğru bir şekilde doğrulamanıza yardımcı olabilir.

Ads Blocker Image Powered by Code Help Pro

Reklam Engelleyici Algılandı!

Reklamları engellemek için uzantı kullandığınızı tespit ettik.

Lütfen bu reklam engelleyiciyi devre dışı bırakarak ya da sitemize izin vererek bize destek olun.

Dikkat: VPN eklentiniz üzerinde de reklam engelleyici olabilir.