title: PHP multifile upload graphic check
body: <pre><code>    &lt;?php
  
  function sprawdz_bledy()
  {
    if ($_FILES['fotki']['error'] &gt; 0)
    {
      echo 'problem: ';
      switch ($_FILES['fotki']['error'])
      {
        // jest większy niż domyślny maksymalny rozmiar,
        // podany w pliku konfiguracyjnym
        case 1: {echo 'Rozmiar pliku jest zbyt duży.'; break;} 
  
        // jest większy niż wartość pola formularza 
        // MAX_FILE_SIZE
        case 2: {echo 'Rozmiar pliku jest zbyt duży.'; break;}
  
        // plik nie został wysłany w całości
        case 3: {echo 'Plik wysłany tylko częściowo.'; break;}
  
        // plik nie został wysłany
        case 4: {echo 'Nie wysłano żadnego pliku.'; break;}
  
        // pozostałe błędy
        default: {echo 'Wystąpił błąd podczas wysyłania.';
          break;}
      }
      return false;
    }
    return true;
  }
  
  
  function sprawdz_typ()
  {
      if ($_FILES['fotki']['type']!= 'image/jpeg')
      {
          echo 'nie właściwy format pliku, proszę wybrać plik w formacie JPG';
          return false;
      }
      return true;
  }
  
  function zapisz_plik()
  {
      global $nazwa_pliku;    
  
          $filess = glob("./../wnetrza_img/wnetrze_*.jpg");
          if (is_array($filess) &amp;&amp; count($filess) &gt; 0) {
      foreach ($filess as $filename) {
          $files[] = $filename;
      }
  } else {
      $files[] = './../wnetrza_img/wnetrze_0.jpg';
  }
  
      if (!empty($files)) {
  
      $ostatni = $files[count($files)-1];
      $pokaz_ostatni = explode("wnetrze_", $ostatni);
      $ostatni_czysty = explode(".jpg", $pokaz_ostatni[1]);
      $dodawanie = $ostatni_czysty[0] +1;
      $nazwa_pliku = "wnetrze_$dodawanie.jpg";
      $lokalizacja = "./../wnetrza_img/$nazwa_pliku";
      }
      else $lokalizacja = "./../wnetrza_img/wnetrze_0.jpg";
  
  
    if(is_uploaded_file($_FILES['fotki']['tmp_name']))
    {
      if(!move_uploaded_file($_FILES['fotki']['tmp_name'], $lokalizacja))
      {
        echo 'problem: Nie udało się skopiować pliku do katalogu.';
          return false;  
      }
    }
    else
    {
      echo 'problem: Możliwy atak podczas przesyłania pliku.';
      echo 'Plik nie został zapisany.';
      return false;
    }
    return true;
  }
  
  /*----------------START_WYSYLANIE_ZDJEC----------------*/
  
  if (isset($_POST['wyslij'])) {
      if  (!empty($_FILES['fotki']['name'])) {
          foreach($_FILES['fotki']['tmp_name'] as $key =&gt; $tmp_name ) {
              if (sprawdz_bledy('$fotki') &amp;&amp; sprawdz_typ('$fotki')) {
                  zapisz_plik('$fotki');
              }
          }
      }
  }
  
  /*----------------KONIEC_WYSYLANIE_ZDJECI----------------*/
  
  ?&gt;
  </code></pre>
  
  <p>This is my code which one I'm trying to upload a few files on serwer, but loop doesn't want to work, I tried <code>add [$key]</code> after <code>$FILES['fotki']['tmp_name']</code>, but it didn't help too.</p>
  
  <p>Could you show me where is problem?</p>
  
  <p>//////////////////////////EDIT///////////////////////</p>
  
  <pre><code>&lt;?php
  
  function sprawdz_bledy($key)
  {
    if ($_FILES['fotki']['error'][$key] &gt; 0)
    {
      echo 'problem: ';
      switch ($_FILES['fotki']['error'])
      {
        // jest większy niż domyślny maksymalny rozmiar,
        // podany w pliku konfiguracyjnym
        case 1: {echo 'Rozmiar pliku jest zbyt duży.'; break;} 
  
        // jest większy niż wartość pola formularza 
        // MAX_FILE_SIZE
        case 2: {echo 'Rozmiar pliku jest zbyt duży.'; break;}
  
        // plik nie został wysłany w całości
        case 3: {echo 'Plik wysłany tylko częściowo.'; break;}
  
        // plik nie został wysłany
        case 4: {echo 'Nie wysłano żadnego pliku.'; break;}
  
        // pozostałe błędy
        default: {echo 'Wystąpił błąd podczas wysyłania.';
          break;}
      }
      return false;
    }
    return true;
  }
  
  
  function sprawdz_typ($key)
  {
      if ($_FILES['fotki']['type'][$key]!= 'image/jpeg')
      {
          echo 'nie właściwy format pliku, proszę wybrać plik w formacie JPG';
          return false;
      }
      return true;
  }
  
  function zapisz_plik($key)
  {
      global $nazwa_pliku;    
  
          $filess = glob("./../wnetrza_img/wnetrze_*.jpg");
          if (is_array($filess) &amp;&amp; count($filess) &gt; 0) {
      foreach ($filess as $filename) {
          $files[] = $filename;
      }
  } else {
      $files[] = './../wnetrza_img/wnetrze_0.jpg';
  }
  
      if (!empty($files)) {
  
      $ostatni = $files[count($files)-1];
      $pokaz_ostatni = explode("wnetrze_", $ostatni);
      $ostatni_czysty = explode(".jpg", $pokaz_ostatni[1]);
      $dodawanie = $ostatni_czysty[0] +1;
      $nazwa_pliku = "wnetrze_$dodawanie.jpg";
      $lokalizacja = "./../wnetrza_img/$nazwa_pliku";
      }
      else $lokalizacja = "./../wnetrza_img/wnetrze_0.jpg";
  
  
    if(is_uploaded_file($_FILES['fotki']['tmp_name'][$key]))
    {
      if(!move_uploaded_file($_FILES['fotki']['tmp_name'][$key], $lokalizacja))
      {
        echo 'problem: Nie udało się skopiować pliku do katalogu.';
          return false;  
      }
    }
    else
    {
      echo 'problem: Możliwy atak podczas przesyłania pliku.';
      echo 'Plik nie został zapisany.';
      return false;
    }
    return true;
  }
  
  /*----------------START_WYSYLANIE_ZDJEC----------------*/
  
  if (isset($_POST['wyslij'])) {
      if  (!empty($_FILES['fotki']['name'])) {
          foreach($_FILES['fotki']['tmp_name'] as $key =&gt; $tmp_name ) {
              if (sprawdz_bledy($key) &amp;&amp; sprawdz_typ($key)) {
                  zapisz_plik($key);
              }
          }
      }
  }
  
  /*----------------KONIEC_WYSYLANIE_ZDJECI----------------*/
  
  ?&gt;
  </code></pre>
  
  <p>You information helped me and now I added argument in every function and now it works, but only for 10 files, I don't know why :/</p>