Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dodawanie pól - jak to przejąć?
thomson89
post 19.07.2010, 18:44:21
Post #1





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Witam!

Dodaję pola, typu file to pewnego formularza gdzie dodaję pliki.

Pola dodaję tak:
[JAVASCRIPT] pobierz, plaintext
  1. function dodaj_element(kontener){
  2. var znacznik = document.createElement('input');
  3. znacznik.setAttribute('type', 'file');
  4. znacznik.setAttribute('name', 'plik');
  5. znacznik.className = 'upload';
  6. var kontener = document.getElementById(kontener);
  7. kontener.appendChild(znacznik);
  8. }
[JAVASCRIPT] pobierz, plaintext


Załóżmy, że tych pól jest 20 + 1 istniejące o name "plik". Jak teraz dodać te obrazki za pomocą PHP?



--------------------
Sklep 70%
Go to the top of the page
+Quote Post
erix
post 19.07.2010, 18:53:08
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie rozumiem pytania? Wiesz, jak się obsługuje upload? Wiesz, jak się wykonuje operacje na obrazach? To to połącz.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
thomson89
post 19.07.2010, 19:22:29
Post #3





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Mnie się nie pytaj czy ty nie rozumiesz pytania.

Dałem tak, i zupladowałem dwa pliki - jeden z istniejącego pola drugi z pola dodanego przez powyższy skrypt - nie działa.

  1. <?php
  2. $plik_tmp = $_FILES['plik']['tmp_name'];
  3.  
  4. if(is_uploaded_file($plik_tmp)) {
  5. echo 'ok';
  6. }
  7. ?>


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
Wicepsik
post 19.07.2010, 19:26:26
Post #4





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Jeżeli każdemu inputowi dajesz name plik to jak chcesz odebrać kilka plików ?


--------------------
Go to the top of the page
+Quote Post
thomson89
post 19.07.2010, 20:22:13
Post #5





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Czyli dodając pola z plikami, moim kodem, nie da się tego odebrać w PHP? To jak przerobić ten skrypt i jak potem zliczyć ile pól się dodało?


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
ADeM
post 19.07.2010, 20:30:18
Post #6





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


Sprawdz co Ci da coś takiego:
  1. <input type="typ" name="nazwa[]" value="1" />
  2. <input type="typ" name="nazwa[]" value="0" />


Ten post edytował ADeM 19.07.2010, 20:30:41


--------------------
Go to the top of the page
+Quote Post
thomson89
post 19.07.2010, 21:27:57
Post #7





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Poradziłem sobie z tym.

[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. <!--
  3. function dodaj_element(kontener){
  4. var ilosc = document.getElementById('ilosc');
  5. var suma = parseInt(ilosc.value);
  6. ilosc.value = suma + 1;
  7. var znacznik = document.createElement('input');
  8. znacznik.setAttribute('type', 'file');
  9. znacznik.setAttribute('name', 'plik' + ilosc.value);
  10. znacznik.className = 'upload';
  11. var kontener = document.getElementById(kontener);
  12. kontener.appendChild(znacznik);
  13. }
  14. //-->
  15. </script>
[JAVASCRIPT] pobierz, plaintext

  1. <?php
  2. $plik_tmp = $_FILES['plik']['tmp_name'];
  3. $plik_nazwa = $_FILES['plik']['name'];
  4. $plik_rozmiar = $_FILES['plik']['size'];
  5.  
  6. if(is_uploaded_file($plik_tmp)) {
  7. move_uploaded_file($plik_tmp, $plik_nazwa);
  8. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  9. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br />";
  10. }
  11.  
  12. $i = 0;
  13. while($i <= $_POST['ilosc'])
  14. {
  15. $plik_tmp = $_FILES['plik'.$i]['tmp_name'];
  16. $plik_nazwa = $_FILES['plik'.$i]['name'];
  17. $plik_rozmiar = $_FILES['plik'.$i]['size'];
  18.  
  19. if(is_uploaded_file($plik_tmp)) {
  20. move_uploaded_file($plik_tmp, $plik_nazwa);
  21. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  22. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br />";
  23. }
  24. $i ++;
  25. }
  26.  
  27. ?>


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
ADeM
post 19.07.2010, 21:34:17
Post #8





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


Naokoło trochę biggrin.gif
Na przyszłość jednak radziłbym sprawdzić, co zwróci formularz z inputami, które podałem wyżej. Może się przydać :]


--------------------
Go to the top of the page
+Quote Post
thomson89
post 19.07.2010, 21:38:39
Post #9





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Wiem, że na około, ale widziałem ten sposób w jakimś innym dodawaczu pól - więc zgapiłem co nie co.


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
Wicepsik
post 19.07.2010, 21:39:02
Post #10





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


I zamiast while użyć foreach smile.gif


--------------------
Go to the top of the page
+Quote Post
erix
post 19.07.2010, 23:50:12
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




~Wicepsik - FYI - foreach jest 2x bardziej pamięciożerne od while.

Jedyny sens stosowania foreach jest przy obiektach implementujących interfejs iteratora. We wszystkich pozostałych albo while, albo for.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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 - 02:13