PHP 8 Php 8 File Upload 2026 Güncel

Php 8 Dosyanın Klasöre Kayıt Edilmesi

5 dk okuma süresi 656 görüntülenme 2024-09-19 4.9 (14 değerlendirme)

PHP 8 ile dosya yükleme ve klasöre kayıt işlemi, kullanıcıların form aracılığıyla bir dosya yüklemesini sağlayan ve bu dosyayı belirli bir klasöre kaydeden bir süreçtir. Aşağıda bu işlemi adım adım nasıl gerçekleştireceğinizi açıklıyorum.

1. HTML Formu Oluşturma

Öncelikle bir HTML formu oluşturarak kullanıcıların dosya yükleyebilmesini sağlıyoruz. Formda enctype="multipart/form-data" kullanılması gereklidir; bu, dosya yüklemeleri için gereklidir.

<!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</title> </head> <body> <h2>Dosya Yükleme Formu</h2> <form action="upload.php" method="POST" enctype="multipart/form-data"> <label for="file">Dosya Seçin:</label> <input type="file" name="file" id="file" required> <br> <br> <input type="submit" value="Dosyayı Yükle"> </form> </body> </html>

2. PHP Dosya Yükleme İşlemi

Formu işlemek ve dosyayı belirtilen klasöre kaydetmek için bir PHP dosyasına ihtiyacınız var. Bu örnekte upload.php adında bir dosya kullanıyoruz. Aşağıda PHP'deki dosya yükleme işlemi adım adım açıklanmıştır.

2.1. Dosyanın Klasöre Kaydedilmesi

Kullanıcı tarafından yüklenen dosyalar geçici bir dizine kaydedilir. move_uploaded_file() fonksiyonunu kullanarak dosyayı kalıcı olarak istediğiniz klasöre taşıyabilirsiniz.

<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Yükleme dizini $uploadDir = 'uploads/'; // Yüklenen dosyanın adı ve yolu $uploadFile = $uploadDir . basename($_FILES['file']['name']); // Dosyanın geçici yüklenme yeri $tmpFile = $_FILES['file']['tmp_name']; // Yükleme işlemi kontrolü if (move_uploaded_file($tmpFile, $uploadFile)) { echo "Dosya başarıyla yüklendi: " . htmlspecialchars(basename($_FILES['file']['name'])); } else { echo "Dosya yükleme sırasında bir hata oluştu."; } } ?>

3. Önemli Güvenlik Kontrolleri

Dosya yükleme işlemi, güvenlik açısından dikkat gerektiren bir işlemdir. Kullanıcıların zararlı dosyalar yüklemesini önlemek için çeşitli kontroller yapmak gerekir.

3.1. Dosya Türü Kontrolü

Kullanıcının yalnızca belirli dosya türlerini yükleyebilmesini sağlamak için dosya türünü kontrol edebilirsiniz. Örneğin, sadece resim dosyalarına izin vermek için MIME türünü kontrol edelim:

$allowedTypes = ['image/jpeg', 'image/png', 'image/gif']; $fileType = mime_content_type($tmpFile); if (!in_array($fileType, $allowedTypes)) { die("Yalnızca JPEG, PNG veya GIF dosyalarına izin veriliyor."); }

3.2. Dosya Boyutu Kontrolü

Yüklenecek dosyanın boyutunu kontrol ederek büyük dosyaların yüklenmesini engelleyebilirsiniz. PHP'de dosya boyutunu $_FILES['file']['size'] ile alabilirsiniz.

$maxSize = 2 * 1024 * 1024; // 2 MB if ($_FILES['file']['size'] > $maxSize) { die("Dosya boyutu 2MB'den büyük olamaz."); }

3.3. Dosya Adı ve Çakışma Kontrolü

Eğer aynı isimde bir dosya daha önce yüklenmişse, bu yeni dosya eski dosyanın üzerine yazabilir. Bu yüzden her dosya için benzersiz bir isim oluşturabilirsiniz. Örneğin, dosya adına benzersiz bir ID ekleyebilirsiniz:

$uniqueName = uniqid() . "_" . basename($_FILES['file']['name']); $uploadFile = $uploadDir . $uniqueName;

3.4. Klasörün Var Olup Olmadığını Kontrol Etme

Dosyaları kaydetmek istediğiniz klasörün mevcut olup olmadığını kontrol edebilir ve yoksa klasörü oluşturabilirsiniz:

if (!is_dir($uploadDir)) { mkdir($uploadDir, 0755, true); // Klasör oluşturma }

4. Tam Örnek: PHP 8 Dosya Yükleme ve Klasöre Kayıt

Aşağıda dosya türü, boyut kontrolü ve güvenlik önlemleri içeren tam bir örnek bulunmaktadır:

<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $uploadDir = 'uploads/'; // Yüklenen dosyanın adı ve geçici yolu $tmpFile = $_FILES['file']['tmp_name']; $fileName = basename($_FILES['file']['name']); $uploadFile = $uploadDir . uniqid() . "_" . $fileName; // Dosya türü kontrolü (yalnızca resim dosyaları) $allowedTypes = ['image/jpeg', 'image/png', 'image/gif']; $fileType = mime_content_type($tmpFile); if (!in_array($fileType, $allowedTypes)) { die("Yalnızca JPEG, PNG veya GIF dosyalarına izin veriliyor."); } // Dosya boyutu kontrolü (maksimum 2MB) $maxSize = 2 * 1024 * 1024; // 2MB if ($_FILES['file']['size'] > $maxSize) { die("Dosya boyutu 2MB'den büyük olamaz."); } // Klasörün var olup olmadığını kontrol etme if (!is_dir($uploadDir)) { mkdir($uploadDir, 0755, true); } // Dosyayı klasöre taşıma if (move_uploaded_file($tmpFile, $uploadFile)) { echo "Dosya başarıyla yüklendi: " . htmlspecialchars($fileName); } else { echo "Dosya yükleme sırasında bir hata oluştu."; } } ?>

5. Sonuç

Bu rehberde, PHP 8 kullanarak dosyaların bir klasöre nasıl güvenli bir şekilde kaydedileceğini öğrendik. Güvenlik açısından önemli adımlar atmak, özellikle dosya türü ve boyutu kontrolü gibi önlemler almak, web uygulamanızın güvenliğini artırır. Ayrıca, kullanıcı deneyimi açısından da doğru yönlendirmeler yaparak dosya yükleme işlemini optimize edebilirsiniz.

Bu Dersi Değerlendirin

Bu ders size yardımcı oldu mu? Puan verin!

Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.

4.9 / 5 (Toplam 14 oy kullanıldı)

Sıkça Sorulan Sorular (SSS)

Bu ders ve konuyla ilgili en çok merak edilenler

Php 8 Dosyanın Klasöre Kayıt Edilmesi dersini öğrenmek için ön koşul var mı?

Bu eğitim temel seviyeden ileri seviyeye adım adım hazırlanmıştır. Kodları kopyalayıp Canlı Editör üzerinde test ederek kolayca pratik yapabilirsiniz.

Örnek kodları kendi projelerimde ücretsiz kullanabilir miyim?

Evet, PHP Hocası üzerindeki tüm kod örnekleri açık kaynak mantığıyla sunulmaktadır. Ticari veya kişisel projelerinizde serbestçe kullanabilirsiniz.

Takıldığım bir yerde nereden soru sorabilirim?

Dersin altındaki topluluk yorumları bölümünden sorunuzu sorabilirsiniz. Eğitmenlerimiz ve topluluk üyelerimiz kısa sürede yanıt verecektir.

Paylaş:
PHP Hocası Akademi

Topluluk Yorumları (0)

Ders Hakkında Yorum Yap veya Soru Sor

Henüz yorum yapılmamış. İlk yorumu siz yazın!