Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tablica a przesyłanie obrazków w formularzu
Forum PHP.pl > Forum > PHP
Alikowski
Witam,

mam nietypowy problem z przesyłaniem plików na serwer. Przeszukałem całe forum i nie znalazłem odpowiedzi na swoje pytanie. Chodzi mianowicie o to, że potrzebuję w swoim skrypcie generować dynamicznie formularz, który ma zmienną ilość pól przesyłania plików. Wszystko jest dobrze do momentu kiedy cokolwiek zamierzam zrobić z tak otrzymaną tablicą plików. Nie wiem jak wyciągnąć z niej dane. Powiedzmy, że zmienna $uploadfiles[jakis_indeks] zawiera plik. $_FILES[$uploadfiles[jakis_indeks],'type'] nie zwraca żadnych danych. $uploadfiles_type[jakis_indeks] to nie jest to samo jak przy zmiennej zwykłej (nie tablicowej). Czy ktoś zna rozwiązanie tego problemu?
mike
Co to za dziwoląg: $_FILES[$uploadfiles[jakis_indeks],'type'] :?:
Widziałeś w ogóle manuala na oczy? I tablice wielowymiarowe?

Zrób sobie:

  1. <pre><?php
  2.  
  3. print_r( $_FILES );
  4.  
  5. ?></pre>
żeby zobaczyć jka wygląda ta tablica.

A potem przeczytaj: Tablice (array) (łącznie z komentarzami użytkowników).

P.S.
W ramach ćwiczeń smile.gif
  1. <?php
  2.  
  3. $arrTab = array( 1 => array( 1, 2, 3 ), 3, 45 => array( 'qwerty', 'asd' ) );
  4.  
  5. echo $arrTab[ 1 ];
  6. echo $arrTab[ 1 ][ 2 ];
  7. echo $arrTab[ 2 ];
  8. echo $arrTab[ 45 ][ 'qwerty' ];
  9. echo $arrTab[ 45 ][ 'asd' ];
  10.  
  11. ?>
Alikowski
Dzięki za zainteresowanie,


nie za bardzo pomogło mi to co napisałeś. Może więc naświetlę bardziej sytuację na przykładzie. Fragment formularza wyglądfa mniej więcej tak:

  1. <?php
  2. //przekazujemy do budowy formularza ilosc plikow które potrzebujemy ściągnąć
  3. $i=5;
  4. //formularz przesyłania
  5. echo "<form action='obsluga.php' method=post>";
  6. echo "<input TYPE='hidden' name='akcja' value='1'>
  7. while ($i2<$i) {
  8. echo "<input type='file' name='uploadfile[$i2]' size='15'>";
  9. }
  10. echo "<input class=maly type=submit value='popraw' name=wysylaj>";
  11. echo "</form>";
  12. ?>


pytanie moje brzmi następująco:
Jak uzyskać dane z tej tablicy (np. $uploadfile[0]) aby chociaż wyświetlić jego nazwę, typ... Może mój błąd jest już w konstrukcji samego formularza i php nie jest w stanie założyć tablicy wielowymiarowej, czyli jako element tablicy dwuwymiarowej dać następną tablicę dwuwymiarową. Nigdzie nie znalazłem informacji na ten temat. A może macie inne propozycje na rozwiązanie tego problemu? Przyopominam, że chodzi o dynamiczne generowanie formularza, który jest w stanie przyjąć zmienną liczbę plików.

pozdrawiam

ps. do manuala raczej zaglądam
UNK
To przeczytaj manuala jeszcze raz, jest tam dokładnie opisana obsługa plików, również z większą ilością plików (nie zmienna, ale można się na tym oprzeć).

Pierwsze uchybienie: enctype="multipart/form-data" do form, bez tego ani rusz.

Po drugie po jaką .... uploadfile[$i2] wystarczy uploadfile[] a tablica sama się wypełni od 1 do ....

No to by było chyba na tyle. Później skorzystaj jak wcześniej podał mike_mech z print_r($_FILES) i przeczytaj jeszcze raz manuala i wysyłanie większej ilości plików bo jest tam opisany jak je odebrać(można też samemu wymyślić winksmiley.jpg )
Alikowski
Witam,

dobra ok, wstyd się przyznać, ale najprostzse błędy zaślepiają czasami człowieka. Chodziło o "enctype", a poza tym wszystko chodzi. Dzięki za pomoc i cierpliwośc do mnie.

pozdrawiam
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.