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.

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.
GregoryTwirl
29 Agustos 2025 18:20:29