Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Odczytanie danych ze zmiennej $_FILES
Forum PHP.pl > Forum > Przedszkole
adrian1987
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">
wookieb
A czemu sobie poprostu nie wyswietlisz $_FILES i nie zobaczysz jak to wyglada?
  1. <?php
  2. print_r($_FILES);
  3. ?>
goose
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
nospor
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
adrian1987
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?
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.