PHP Çoklu Dosya Upload Sistemi

0 Yanıt 1 Görüntülenme
·
Katılımcılar
Konuyu Açan #1
Giriş ve Temel Kavramlar
Çoklu dosya yükleme, modern web uygulamalarında kullanıcı deneyimini artıran kritik özelliklerden biridir. PHP ile bu işlemi gerçekleştirirken, form yapısında enctype="multipart/form-data" kullanmak ve aynı anda birden fazla dosya seçimi sağlayan input elementini yapılandırmak gerekir. Bu süreçte, PHP'nin $_FILES süper küresel dizisi, alınan bütün dosyaları işler ve yönetir.

Form Yapısı ve HTML Kodu
İlk adım, kullanıcıdan dosya seçimini sağlayan HTML formunu oluşturmaktır. Çoklu dosya seçimi için multiple parametresini kullanmak gerekir:
KOD
123456[html]  
  
      
      
  
[/html]


Burada, name="files[]" ifadesi, PHP'de dosyaları dizi şeklinde almayı sağlar. Bu yapı, aynı anda birden fazla dosya seçimine olanak tanır.

PHP Tarafında Dosya İşleme ve Güvenlik
PHP'de, $_FILES['files'] dizisi, her dosya için ayrı ayrı bilgileri içerir: isim, boyut, tip ve temp name. Çoklu dosya işlemi için bu diziyi döngüyle gezinmek gerekir. Ayrıca, güvenlik açısından aşağıdaki önlemler alınmalıdır:
  • Dosya uzantı ve tip kontrolü
  • Dosya boyut sınırlandırması
  • Yükleme dizininde güvenlik önlemleri (örneğin, dizin erişim izinleri)
  • Dosya isimlerini benzersiz hale getirme (ör. zaman damgası veya rastgele karakterler ekleyerek)


Örnek kod:
KOD
12345678910111213141516171819[php]  
if(isset($_FILES['files'])) {  
    $files = $_FILES['files'];  
    for($i = 0; $i < count($files['name']); $i++) {  
        $name = basename($files['name'][$i]);  
        $tmp_name = $files['tmp_name'][$i];  
        $error = $files['error'][$i];  
        $size = $files['size'][$i];  

        // Basit güvenlik kontrolleri  
        $allowed_ext = ['jpg', 'png', 'gif', 'pdf'];  
        $ext = strtolower(pathinfo($name, PATHINFO_EXTENSION));  
        if($error === UPLOAD_ERR_OK && in_array($ext, $allowed_ext) && $size < 5 * 1024 * 1024) {  
            $new_name = uniqid() . '.' . $ext;  
            move_uploaded_file($tmp_name, 'uploads/' . $new_name);  
        }  
    }  
}  
[/php]


Performans ve Hata Yönetimi
Çoklu dosya yüklemede, kullanıcı deneyimini optimize etmek ve hata yönetimini düzgün yapmak önemlidir. Yükleme sırasında oluşabilecek hatalar kullanıcıya uygun mesajlarla bildirilmelidir. Ayrıca, büyük boyutlu dosyaların yüklenmesini engellemek veya yükleme sırasında ilerleme çubuğu gibi görsel göstergeler kullanmak performansı artırabilir.

Sonuç olarak, PHP ile çoklu dosya yükleme sistemi kurarken, güvenlik, kullanıcı deneyimi ve performans faktörlerini dikkate almak gerekir. Güvenli ve kullanıcı dostu bir yükleme sistemi, uygulamanızın profesyonel durmasını sağlar.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 3, Üyeler: 3, Misafirler: 0)
Toplam: 3 (üyeler: 3, misafirler: 0)
0 alıntı seçildi