Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z wysłanie plików
Forum PHP.pl > Forum > Przedszkole
arzach
Witam mam kod w który dodaje dynamicznie za pomocą javascript pole by dodać zdjęcie i mam problem z odebraniem tych zdjęć zrobiłem tak i zdjęcia się nie wysyłają może ktoś pomóc

  1. <?php
  2. echo "<script type=\"text/javascript\">
  3. <!--
  4. function dodaj_element(kontener){
  5. var znacznik = document.createElement('input');
  6. znacznik.setAttribute('type', 'file');
  7. znacznik.setAttribute('name', 'plik[]');
  8. znacznik.className = 'upload';
  9. var kontener = document.getElementById(kontener);
  10. kontener.appendChild(znacznik);
  11. }
  12. //-->
  13. </script>
  14.  
  15. <style type=\"text/css\">
  16. <!--
  17. input.upload { display: block; }
  18. -->
  19. </style>";
  20.  
  21. echo "<form action=\"test.php\" method=\"post\" enctype=\"multipart/form-data\">
  22. <div id=\"pliki\">
  23.  <input type=\"file\" name=\"plik[]\" class=\"upload\" />
  24. </div>
  25. <div>
  26.  <input type=\"button\" value=\"Zalacz kolejny plik\" onclick=\"dodaj_element('pliki');\" />
  27.  <input type=\"submit\" value=\"Wyslij\" />
  28. </div>
  29. </form>";
  30.  
  31. $_FILES['plik']['tmp_name'] = array();
  32. $lokalizacja = '/loga/'.$_FILES['plik']['name'];
  33.  
  34. foreach ($_FILES['plik']['tmp_name'] AS $wartosc) {
  35.  
  36. if (is_uploaded_file($_FILES['plik']['tmp_name']))
  37. {
  38. if (!move_uploaded_file($_FILES['plik']['tmp_name'], $lokalizacja))
  39. {
  40. echo 'Problem: Plik nie może być skopiowany do katalogu';
  41. }
  42. }
  43. }
  44. ?>
wookieb
A po co ci dziecko moje drogie foreach. Pewnie nawet nie wiesz co ono robi.
Zreszta zobacz n a logike swojego kodu.
Najpierw
Kod
$_FILES['plik']['tmp_name'] = array();

a potem
Kod
foreach

A jak pomyslisz to juz wiesz dlaczego petla sie nie wykonala (jak poznasz dzialanie foreach)
arzach
Zrobilem tak ale nic sie nie wysla. Ktos wie co jest zle ?
  1. <?php
  2. if (isset($_POST['submit'])) {
  3.  
  4. $ile = count($plik);
  5.  
  6. $lokalizacja = '/loga/'.$_FILES['plik']['name'];
  7. $lp = 0;
  8.  
  9. for ($lp=0; $lp<=$ile; $lp++) {  
  10.  
  11. if (is_uploaded_file($_FILES['plik']['tmp_name']))
  12. {
  13. if (!move_uploaded_file($_FILES['plik']['tmp_name'], $lokalizacja))
  14. {
  15. echo 'Problem: Plik nie może być skopiowany do katalogu';
  16. }
  17. }
  18. }
  19. } else {
  20. echo "<script type=\"text/javascript\">
  21. <!--
  22. function dodaj_element(kontener){
  23.    var znacznik = document.createElement('input');
  24.    znacznik.setAttribute('type', 'file');
  25.    znacznik.setAttribute('name', 'plik[]');
  26.    znacznik.className = 'upload';
  27.    var kontener = document.getElementById(kontener);
  28.    kontener.appendChild(znacznik);
  29. }
  30. //-->
  31. </script>
  32.  
  33. <style type=\"text/css\">
  34. <!--
  35. input.upload { display: block; }
  36. -->
  37. </style>";
  38.  
  39. echo "<form action=\"test.php\" method=\"post\" enctype=\"multipart/form-data\">
  40.    <div id=\"pliki\">
  41.        <input type=\"file\" name=\"plik[]\" class=\"upload\" />
  42.    </div>
  43.    <div>
  44.        <input type=\"button\" value=\"Zalacz kolejny plik\" onclick=\"dodaj_element('pliki');\" />
  45.        <input type=\"submit\" value=\"Wyslij\" name=\"submit\"/>
  46.    </div>
  47. </form>";
  48.  
  49. }
  50. ?>
wookieb
Dziecinko moja droga... Nic sie nie wyswietla bo moze prawidlowo sie wszystko zrobilo. A przeciez nic nie pokazujesz jak sie wykona poprawnie.
arzach
Człowieku myślisz ze jestem taki Tampy po za tym nie pisz do mnie dziecko i wiem do czego służy foreach. Po za tym wiem ze skrypt nic nie wyświetla ale plik się nie wysyłają bo ich w katalogu loga nie ma. Po za tym jak masz tak pomagać to sobie daru i nie pisz w cale.
wookieb
Maleńki. Po co te nerwy.

Kod
$ile=count($_FILES['plik']['name']);


I sprawdź chmod foldera "loga"
arzach
Zrobiłem tak i nie działa już nie wiem jak mam to zrobić. Wyświetla się cały Blad plik nie wyslany dwa razy nawet jak pruje wgrać 1 plik.
Może mi ktoś z tym pomóc ?

  1. <?php
  2. if (isset($_POST['submit'])) {
  3.  
  4. $ile = count($plik);
  5.  
  6. $lp = 0;
  7.  
  8. for ($lp=0; $lp<=$ile; $lp++) {  
  9.  
  10. if (move_uploaded_file($_FILES['plik']['tmp_name'], 'loga/'.$_FILES['plik']['name']))
  11. { echo 'Plik wyslany poprawnie'; } else { echo 'Blad plik nie wyslany'; }
  12.  
  13. }
  14. } else {
  15. echo "<script type=\"text/javascript\">
  16. <!--
  17. function dodaj_element(kontener){
  18.   var znacznik = document.createElement('input');
  19.   znacznik.setAttribute('type', 'file');
  20.   znacznik.setAttribute('name', 'plik[]');
  21.   znacznik.className = 'upload';
  22.   var kontener = document.getElementById(kontener);
  23.   kontener.appendChild(znacznik);
  24. }
  25. //-->
  26. </script>
  27.  
  28. <style type=\"text/css\">
  29. <!--
  30. input.upload { display: block; }
  31. -->
  32. </style>";
  33.  
  34. echo "<form action=\"test.php\" method=\"post\" enctype=\"multipart/form-data\">
  35.   <div id=\"pliki\">
  36.       <input type=\"file\" name=\"plik[]\" class=\"upload\" />
  37.   </div>
  38.   <div>
  39.       <input type=\"button\" value=\"Zalacz kolejny plik\" onclick=\"dodaj_element('pliki');\" />
  40.       <input type=\"submit\" value=\"Wyslij\" name=\"submit\"/>
  41.   </div>
  42. </form>";
  43.  
  44. }
  45. ?>
wookieb
Popraw liczenie zmiennej $ile!!
Przejrzyj tablice $_FILES i zobacz ze brakuje ci iteracji nazw plikow.
  1. <?php
  2. for ($lp=0; $lp<=$ile; $lp++) {  
  3.  
  4. if (move_uploaded_file($_FILES['plik']['tmp_name'][$lp], 'loga/'.$_FILES['plik']['name'][$lp]))
  5. { echo 'Plik wyslany poprawnie'; } else { echo 'Blad plik nie wyslany'; }
  6.  
  7. }
  8. ?>
arzach
Zrobiłem tak jak mówisz czyli zamiast
  1. <?php
  2. for ($lp=0; $lp<=$ile; $lp++) {
  3. ?>

Dałem tak
  1. <?php
  2. for ($lp=0; $lp<count($plik); $lp++) {
  3. ?>

i pliki się wysyłają biggrin.gif
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.