Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tablica a przesyłanie obrazków w formularzu
Alikowski
post 17.10.2006, 00:46:17
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.10.2006

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
mike
post 17.10.2006, 01:19:47
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
Alikowski
post 17.10.2006, 09:25:24
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.10.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
UNK
post 17.10.2006, 09:46:44
Post #4





Grupa: Zarejestrowani
Postów: 93
Pomógł: 5
Dołączył: 30.04.2006
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


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 )
Go to the top of the page
+Quote Post
Alikowski
post 17.10.2006, 10:16:25
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.10.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 18:21