Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $_FILES problem
Forum PHP.pl > Forum > PHP
daro256
Witam wszystkich !

Czy jest możliwe, żeby tablica $_FILES miała ograniczony rozmiar ?
Mam w formularzu 35 pól typu "file". Po wyświetleniu zawartości $_FILES widać, że ma ona 25 pól (10 pól input typu file nie zostało wczytanych). Dodam, że praktycznie w żadnym polu nie ma pliku. Tylko w ostatnich polach formularza wrzucam plik. Nie chciał on się załadować na serwer i szukając przyczyny doszedłem do tego.

Oczywiście mam ustawiony odpowiednio formularz (enctype="multipart/form-data").

Czy spotkał się ktoś z czymś takim ? Jak można to obejść ?
sticker
Poniżej artykuł jak konfigurowaćphp.ini pod kątem uploadowania plików i jakie ustawić preferencje:
* file_uploads
* upload_max_filesize
* max_input_time
* memory_limit
* max_execution_time
* post_max_size
[php]
http://www.radinks.com/upload/config.php
maly_swd
pokaz ten form
daro256
  1. <?php
  2. if(IN_PORTAL!=1)die();
  3. $xml = simplexml_load_file('../galerie/dane1.xml');
  4. if(clear($_GET['edit']!=""))
  5. {
  6.    print_r($_FILES);
  7.    $i=0;
  8.    $macierz = array();
  9.    while(isset($xml->item[$i]))
  10.    {
  11.        array_push($macierz,(string)$xml->item[$i]->img);
  12.        $i++;
  13.    }
  14.    $rozmiar = sizeof($macierz);
  15.  
  16.    
  17.    $i=0;
  18.    while($i < sizeof($macierz))
  19.    {
  20.        if($_POST['change'][$i] == 1)
  21.        {
  22.            unlink('../'.$xml->setup['path'].$macierz[$i]);
  23.            $plik_tmp = $_FILES['ph'.$i]['tmp_name'];
  24.            $plik_nazwa = $_FILES['ph'.$i]['name'];
  25.            $sciezka = $xml->setup['path'].$plik_nazwa;
  26.            while(file_exists($sciezka))
  27.            {
  28.                $pomoc = explode(".",$plik_nazwa);
  29.                $plik_nazwa = $pomoc[0].'1'.$pomoc[1];
  30.                $sciezka = $xml->setup['path'].$plik_nazwa;
  31.            }
  32.            if(is_uploaded_file($plik_tmp))
  33.            {
  34.                
  35.                move_uploaded_file($plik_tmp, '../'.$sciezka);
  36.                $macierz[$i] = $plik_nazwa;
  37.            }
  38.            else
  39.                die("Błąd przy ładowaniu zdjęcia...");
  40.            
  41.        }
  42.        else if($_POST['change'][$i] == 2)
  43.        {
  44.            $sciezka2 = '../'.$xml->setup['path'].$macierz[$i];
  45.            if(unlink("$sciezka2"))
  46.                $macierz[$i] = 0;
  47.            else
  48.                die('błąd przy usuwaniu pliku...');
  49.        }
  50.  
  51.        $i++;
  52.    }
  53.    for($j=0;$j<5;$j++)
  54.    {
  55.        
  56.        if($_FILES['bla'.$j]['name']!="")
  57.        {
  58.            echo 'dfsdfsd';
  59.            $plik_tmp = $_FILES['bla'.$j]['tmp_name'];
  60.            $plik_nazwa = $_FILES['bla'.$j]['name'];
  61.            $sciezka = $xml->setup['path'].$plik_nazwa;
  62.            while(file_exists($sciezka))
  63.            {
  64.                $pomoc = explode(".",$plik_nazwa);
  65.                $plik_nazwa = $pomoc[0].'1'.$pomoc[1];
  66.                $sciezka = $xml->setup['path'].$plik_nazwa;
  67.            }
  68.            if(move_uploaded_file($plik_tmp, '../'.$sciezka))
  69.            {
  70.                array_push($macierz,$plik_nazwa);
  71.            }
  72.            else
  73.                die('błąd przy ładowaniu pliku...');
  74.        }
  75.    }
  76.    for($i=0;$i<$rozmiar;$i++)
  77.    {
  78.        unset($xml->item[0]);
  79.    }
  80.    $macierz2 = array();
  81.    for($i=0;$i<sizeof($macierz);$i++)
  82.    {
  83.        
  84.        if(($macierz[$i])!='0')
  85.        {
  86.            array_push($macierz2,$macierz[$i]);
  87.        }
  88.    }
  89.    for($i=0;$i<sizeof($macierz2);$i++)
  90.    {
  91.            $xml->addChild('item','');
  92.            $xml->item[$i]->addChild('img',$macierz2[$i]);
  93.    }
  94.    $plik = fopen('../galerie/dane1.xml', 'w');
  95.    fwrite($plik,$xml->asXML());
  96.    fclose($plik);
  97.    echo'<a href="index.php?a=manage&w=22">Powrót</a><br /><br />
  98.  <form enctype="multipart/form-data" action="index.php?a=manage&w=23&edit=23" method="post">
  99.  <table border="0"> <br/>';
  100.  $i=0;
  101.  while(isset($xml->item[$i]))
  102.  {
  103.      echo'<tr><td>Zdjęcie '.($i+1).'</td><td>Zdjęcie załadowane - <a href="index.php?w=showpic&p=../'.$xml->setup['path'].$xml->item[$i]->img.'">pokaż</a><br />
  104.     <input type="radio" name="change['.$i.']" value="1" /> zastąp: <input type="file" name="ph'.$i.'" />, <input type="radio" name="change['.$i.']" value="2" /> usuń, <input type="radio" name="change['.$i.']" value="3" checked /> pozostaw bez zmian.</td></tr>';
  105.    $i++;
  106.  }
  107.  echo'<tr><td>DODAJ NOWE ZDJĘCIA<br/></td></tr>';
  108. for($j=0;$j<5;$j++)
  109. {
  110.    echo'<tr><td>Zdjęcie '.(sizeof($macierz)+1+$j).'</td><td><input type="file" name="bla'.$j.'" /></td></tr>';
  111. }
  112. echo'<tr><td></td><td><input type="submit" value="Edytuj obiekt" /></td></tr></table></form>';
  113. }
  114. else{            
  115. echo'<a href="index.php?a=manage&w=22">Powrót</a><br /><br />
  116.  <form enctype="multipart/form-data" action="index.php?a=manage&w=23&edit=23" method="post">
  117.  <table border="0"> <br/>';
  118. $i = 0;
  119. while (isset($xml->item[$i]))
  120. {
  121.    echo'<tr><td>Zdjęcie '.($i+1).'</td><td>Zdjęcie załadowane - <a href="index.php?w=showpic&p=../'.$xml->setup['path'].$xml->item[$i]->img.'">pokaż</a><br />
  122.     <input type="radio" name="change['.$i.']" value="1" /> zastąp: <input type="file" name="ph'.$i.'" />, <input type="radio" name="change['.$i.']" value="2" /> usuń, <input type="radio" name="change['.$i.']" value="3" checked /> pozostaw bez zmian.</td></tr>';
  123. $i++;
  124. }
  125. echo'<tr><td>DODAJ NOWE ZDJĘCIA</td></tr>';
  126. for($j=0;$j<5;$j++)
  127. {
  128.    echo'<tr><td>Zdjęcie - </td><td><input type="file" name="bla'.$j.'" /></td></tr>';
  129. }
  130. echo'<tr><td></td><td><input type="submit" value="Edytuj obiekt" /></td></tr></table></form>';
  131. }
  132. ?>


Form się zaczyna w 116 linijce. Ilość pól input typu file zależy od pliku xml, wczytywanego w 1 linijce. Zawartość if'a w drugiej linijce wykonuje się po kliknięciu przycisku submit w formularzu. Czyli za pierwszym razem plik się wczytuje od 116 linijki, a po kliknięciu submit, wykonuje się if w drugiej linijce.

W 54 linijce jest warunek odnoszący się do zawartości pól "bla". Nigdy nie jest spełniony, niezależnie od tego czy pola są wypełnione czy nie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.