Witam
W tym temacie (założyłem nowy bo nie wiem czy ktokolwiek przegląda rozwiązane) miałem problem z odczytaniem pól formularza. Wystarczyło tylko zamienić $pole na $_POST['pole']. Teraz chcę to samo zrobić dla kodu uploadu obrazków na serwer.

Mam to:
  1. <form action="addnews.php" method="post" enctype="multipart/form-data">
  2. [...]
  3. <input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
  4. <div id="images">
  5. <input type="file" name="img[]" size="50" class="upload" />
  6. </div>
  7. <input type="button" value="Więcej..." onclick="add_element('images');" />
  8. [...]
  9. </form>
  10.  
  11. [...]
  12.  
  13. <?php
  14. for($i = 0 ; $i < count($img) ; $i++) //tyle, ile jest pól ze zdjęciami
  15. {
  16. if(!empty($img[$i])) //jeśli aktualne pole jest niepuste
  17. {
  18. $r = explode('.',$_FILES['img']['name'][$i]); //dzieli nazwę na łańcuchy między kropkami
  19. $ext = strtolower(end($r)); //ostatni łańcuch jest rozszerzeniem
  20. if($ext == 'jpg' || $ext == 'jpeg' || $ext == 'png' || $ext == 'gif') //przyjmuj tylko takie pliki
  21. {
  22. move_uploaded_file($_FILES['img']['tmp_name'][$i],$imgdir.'/'.$_FILES['img']['name'][$i]); //skopiuj plik na serwer
  23. [...]
  24. }
  25. }
  26. }
  27. ?>


funkcja add_element wygląda tak
[JAVASCRIPT] pobierz, plaintext
  1. function add_element(container) //dodaje element do listy zdjęć
  2. {
  3. var mark = document.createElement('input');
  4. mark.setAttribute('type', 'file');
  5. mark.setAttribute('name', 'img[]');
  6. mark.setAttribute('size', '50');
  7. mark.className = 'upload';
  8. var container = document.getElementById(container);
  9. container.appendChild(mark);
  10. }
[JAVASCRIPT] pobierz, plaintext


I chciałbym ten kod przerobić tak, żeby tablicę $img odczytać z formularza przez tablicę POST.
Próbowałem $img = $_POST['img'] i $img = $_POST['img[]'] niestety bez skutku.