PHP – Çoklu Dosya Yükleme

PHP

Bu yazımda size önceki yazılarımda anlattığım dosya işlemlerini, çoklu dosya yüklerken nasıl kullanacağınızı göstereceğim.


Şöyle bir form oluşturalım.

<form action='sonuc.php' method='post' enctype="multipart/form-data">
  Dosya seçiniz: <br>
  <input type='file' name='dosya[]' multiple><br>
  <button type='submit'>YÜKLE</button>
</form>

Daha sonra oluşturulan bu formdan dosya özelliklerini döndürelim.

  function multi_upload($dosyalar){
    echo '<pre>';
    print_r($dosyalar);
    echo '</pre>';

  };

  $sonuc = multi_upload($_FILES['dosya']);

Yukarıdaki kodları sonuc.php adındaki bir belgeye yazıysak kodlarımız düzgün olarak görüntülecektir. Şimdi birden fazla dosya yüklemeye alışın. Muhtemelen önünüze şuna benzer bir ekran çıkacaktır:

     [type] => Array
        (
            [0] => image/png
            [1] => image/png
        )

    [tmp_name] => Array
        (
            [0] => C:\xampp\tmp\php2087.tmp
            [1] => C:\xampp\tmp\php2088.tmp
        )

    [error] => Array
        (
            [0] => 0
            [1] => 0
        )

    [size] => Array
        (
            [0] => 145252
            [1] => 159899
        ) 

Şimdi bu kodlara biraz kontrol yapıları ekleyelim. Örneğin; dosyaları yüklerken her hangi bir hata olup olmadğını kontrol etmek için şöyle bir kod yazabiliriz.

  function multi_upload($dosyalar){

    $sonuc = [];

    foreach($dosyalar['error'] as $index => $error){
      if($error == 4){
        $sonuc['hata'] = 'Lütfen dosya seçiniz...';
      }else{
        $sonuc['hata'][] = 'Dosya yüklenirken bir hata oluştu.';
      }
    }

    if(isset($sonuc['hata'])){
      echo '<pre>';
      print_r($dosyalar);
      echo '</pre>';
    }

  };

  $sonuc = multi_upload($_FILES['dosya']);

Yorum bırakın