Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML]Odczytanie danych ze zmiennej $_FILES
adrian1987
post 11.05.2009, 23:28:03
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 23.12.2005

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


hejka, napisałem sobie taki formularz:
  1. <form action="?done=1" method="post" name="formularz" enctype="multipart/form-data" id="formularz">
  2. <input type="text" name="imie" size="100" /><br />
  3. <input type="file" name="files[]" size="100" /><br />
  4. <font onclick="dodaj_input_file();" id="add_file" style="cursor:pointer;">kolejny załącznik</font>
  5. <input type="submit" value="wyślij" />
  6. </form>

ideą tego formularza jest fakt, iż napisałem też do niego JS który dodaje kolejne pola input typu file jeśli to potrzebne...
ale chodzi mi o to, że jako name w polu file mam coś takiego name="files[]" i teraz mam problem jak to odczytać w odniesieniu do zmiennej $_FILES??
bo w żaden sposób nie mogę odczytać potrzebnych informacji:/ przy input text to sobie $zmienna = $_POST['tablica'] i później dane z formularza odczytywyałem z tablicy $zmienna[1]...
A w tym przypadku jak to zastosować??

ok już zrobiłem coś takiego
  1. $files = $_FILES['files'];
  2. echo $files['tmp_name'][0];

i jest ok

hmm jednak nadal mam problem... jak wrzuciłem to rozwiązanie z tym $_FILES['files'] wewnątrz funkcji to się nagle okazało, ze przestało wdzieć tą tablicę...
  1. //dodajemy załączniki
  2. $files = $_FILES['files'];
  3. $x = count($_FILES['files']);
  4. echo $x;
  5. if($files['name'][0] != NULL)
  6. {
  7. for($i=0; $i<$x; $i++)
  8. {
  9. $mail->AddAttachment($files['tmp_name'][$i],$files['name'][$i]);
  10. }
  11. }

no i niestety jak tak mam zrobione to zmienna $x cały czas pokazuje 0, do if'a wogóle nie chce wejść przez co nie mogę dołączyć załączników
z tych pól
  1. <input type="file" name="files[]" size="78" class="kon_input">


Ten post edytował adrian1987 11.05.2009, 14:25:25
Go to the top of the page
+Quote Post
wookieb
post 12.05.2009, 08:09:35
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A czemu sobie poprostu nie wyswietlisz $_FILES i nie zobaczysz jak to wyglada?
  1. <?php
  2. print_r($_FILES);
  3. ?>


--------------------
Go to the top of the page
+Quote Post
goose
post 12.05.2009, 09:44:31
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.12.2008
Skąd: Gdańsk

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


Po pierwsze w if powinno być $files[0]['name'] a nie $files['name'][0]
Niestety nie da się skonstruować takiej tablicy. Lepiej użyć nazw files_1, files_2 ... w atrybutach name inputów
Go to the top of the page
+Quote Post
nospor
post 12.05.2009, 09:47:48
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Po pierwsze w if powinno być $files[0]['name'] a nie $files['name'][0]
najpierw sprawdz, potem (nie)gadaj glupoty winksmiley.jpg

Cytat
Niestety nie da się skonstruować takiej tablicy. Lepiej użyć nazw files_1, files_2
jak wyzej


@adrian1987 skoro dzial ci poza funkcja to musi dzialac i w funkcji. $_FILES to tablica superglobalna i jest widoczna wszedzie. musiales cos podrodze namieszac


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
adrian1987
post 12.05.2009, 10:25:34
Post #5





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 23.12.2005

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


ok już sobie z tym poradziłem, odczytałem poprzez print_r($_FILES) i się okazało, że tablica jest pusta, znalazłem błąd i teraz jest to działa. Ale jest inny problem, korzystam z tej klasy phpmailer i chcę teraz dołączyć te pliki do wysyłanej wiadomości mail. Robię to w ten sposób
  1. <?php
  2. //dodajemy załączniki
  3. $files = $_FILES['files'];
  4. $x = count($files['name']);
  5. if($files['name'][0] != NULL)
  6. {
  7. for($i=0; $i<$x; $i++)
  8. {
  9. $mail->AddAttachment($files['tmp_name'][$i],$files['name'][$i]);
  10. echo('Plik: '.$files['name'][$i].' został załączony do e-maila<br />');
  11. }
  12. }
  13. ?>

i problem polega na tym, że w wysłanym mailu jest tylko 1 załącznik, pierwszy dodany... Czy nie można dodać więcej niż 1 załącznik?
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: 29.06.2025 - 10:58