Dosya Yükleme Upload ve Görsel Galeri Oluşturma

Web stajımda PHP kullanarak dosya yükleme (upload) sistemi kurdum ve yüklenen görselleri galeri şeklinde listeleyerek kullanıcıların görsel erişimini kolaylaştırdım.

Ali YILMAZ
Ali YILMAZ

Yönetici

49

Dosya Yükleme (Upload) ve Görsel Galeri Oluşturma

Stajımın on üçüncü haftasında, kullanıcıların web sitesi üzerinden resim yükleyebileceği bir dosya yükleme sistemi kurdum. Yüklenen resimleri veritabanına kaydedip galeri görünümünde listeleyerek kullanıcıya sundum.

Upload Sistemi Nedir?

Upload sistemi, kullanıcıların bilgisayarlarından seçtikleri dosyaları sunucuya yüklemesine imkân tanıyan bir web fonksiyonudur. Genellikle resim galerileri, dosya arşivleri ve içerik sistemlerinde kullanılır.

Form Tasarımı (upload.php)


<form action="upload.php" method="post" enctype="multipart/form-data">
  Resim Seçin: <input type="file" name="dosya"><br>
  <input type="submit" value="Yükle">
</form>

Yükleme Kodları (upload.php)


<?php
$hedef_klasor = "uploads/";
$hedef_dosya = $hedef_klasor . basename($_FILES["dosya"]["name"]);
$yukleme_ok = 1;
$imageFileType = strtolower(pathinfo($hedef_dosya, PATHINFO_EXTENSION));

if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["dosya"]["tmp_name"]);
  if($check !== false) {
    $yukleme_ok = 1;
  } else {
    echo "Dosya bir resim değil.";
    $yukleme_ok = 0;
  }
}

if ($yukleme_ok == 1) {
  if (move_uploaded_file($_FILES["dosya"]["tmp_name"], $hedef_dosya)) {
    echo "Dosya başarıyla yüklendi.";
    // Veritabanına ekleyebilirdim: mysqli_query($db, "INSERT INTO galeriler (url) VALUES ('$hedef_dosya')");
  } else {
    echo "Yükleme sırasında hata oluştu.";
  }
}
?>

Görsel Galeri Listeleme (galeri.php)


<?php
$klasor = "uploads/";
$dosyalar = scandir($klasor);

foreach($dosyalar as $dosya){
  if($dosya != "." && $dosya != ".."){
    echo "<img src='uploads/$dosya' width='200' style='margin:10px'>";
  }
}
?>

Güvenlik Önlemleri

  • Sadece resim formatı (jpg, png, gif) kabul edilecek şekilde kontrol ettim
  • getimagesize() fonksiyonu ile dosyanın gerçekten görsel olup olmadığını kontrol ettim
  • Dosya ismini doğrudan kullanmak yerine rastgele ad üretmeyi öğrendim

Karşılaştığım Zorluklar

  • Sunucuya dosya yazma izni yoksa hata alıyordum (chmod ayarı gerekmişti)
  • Büyük dosyalar için PHP ayarlarında upload_max_filesize sınırına dikkat etmem gerekti
  • Görsellerin karışmaması için isim kontrolü yapmam gerekti

Genel Değerlendirme

Bu çalışmayla birlikte web sitelerinde en çok kullanılan dosya yükleme fonksiyonunu öğrenmiş oldum. Galeri sistemine görsellerin otomatik olarak eklenmesi ve kullanıcı dostu bir yapı kurmam bana büyük katkı sağladı. Bu sistemi bloglarda, e-ticaret sitelerinde ve kullanıcı profillerinde kullanabileceğimi fark ettim.




Paylaş

Etiketler


1 Yorum Yapılmış

  • yorum

    GregoryTwirl

    29 Agustos 2025 18:20:29

    Plunge into the stunning realm of EVE Online. Start your journey today. Build alongside millions of explorers worldwide. [url=https://www.eveonline.com/signup?invc=46758c20-63e3-4816-aa0e-f91cff26ade4]Join now[/url]

Yorum Yap


Instagram