Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]wysyłanie plików z formularza
dudziec
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.06.2005
Skąd: Knurów

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


Witam serdecznie,
mam taki problem otóz:
na serwerze posiadam dwa katalogi równorzedne w hierarchi:
- system ( tam znajdują sie pliki odpowiedzialne do administrowania syroną)
- news
w katalogu news mam podkatalogi: duzyimg

w katalogu system mam tam plik - formularz co przetwarza i wysyła mi plik który ma zapisac w katalogu news/duzyimg/:

  1.  
  2. //zapis
  3. if(is_uploaded_file($img_tmp)) {
  4. move_uploaded_file($img_tmp,'../news/duzyimg/'.$pic_name); //zapis zdjecia całego z nazwa
  5. chmod('../news/duzyimg/'.$pic_name,0755);
  6. }
  7. //koniec zapisu pliku


i tego nei robi i nie wiem co siedzieje twierdzi, ze scierzka jest zła - wiec jaka ma byc ?
chmody katalogów na 7777 - ustawione
dzięki z apomoc


Go to the top of the page
+Quote Post
zamper
post
Post #2





Grupa: Zarejestrowani
Postów: 156
Pomógł: 17
Dołączył: 11.12.2010
Skąd: Częstochowa

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


  1. <form [...] enctype="multipart/form-data">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="max_w_bajtach" /> <!-- nie zmieniaj wartości name -->
  3. <!-- ... -->


powinno pomóc smile.gif

Ten post edytował zamper 13.12.2010, 15:29:56


--------------------
GG(22779936)
Go to the top of the page
+Quote Post
dudziec
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.06.2005
Skąd: Knurów

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


Zamper rozumiem, ze mam dopisac taką linijke do formularza? bo cały kod stronki jest nastepujący:

  1. <form class="form" action="dodajaktualnosc.php?akcja=dodaja" method="post">
  2. <input type="hidden" name="wyslane" value="TRUE" />
  3. <input type="hidden" name="MAX_FILE_SIZE" value="max_w_bajtach" />
  4.  
  5. <p>
  6. <div class="label"><label for="kategoria">Kategoria</label></div>
  7. <select name="kategoria">
  8. <option>region</option>
  9. <option>kultura</option>
  10. <option>sport</option>
  11. </select>
  12. </p>
  13.  
  14. <p>
  15. <div class="label"><label for="temat">Temat Wiadomości</label></div>
  16. <input type="text" name="temat" id="temat" size="100" />
  17. </p>
  18. <p>
  19. <div class="label"><label for="skrot">Skrót newsa</label></div>
  20.  
  21. <textarea name="skrot" cols="100" rows="10"></textarea/>
  22. </p>
  23.  
  24. <p>
  25. <div class="label"><label for="news">Cały news</label></div>
  26. <textarea name="news" cols="100" rows="10"></textarea/>
  27. </p>
  28.  
  29. <p>
  30. <div class="label"><label for="news">Obrazek</label></div>
  31. <input type="file" name="img" SIZE="100" CLASS="text">
  32. </p>
  33.  
  34. <p class="submit">
  35. <input type="submit" value="Dodaj Aktualność" />
  36. </p></form>
  37.  
  38. <?
  39. $akcja=$_GET["akcja"];
  40. if($akcja=='dodaja')
  41. {
  42. if ($_POST["wyslane"]=='TRUE') { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  43. $kategoria=$_POST["kategoria"];
  44. $temat=$_POST["temat"];
  45. $skrot=$_POST["skrot"];
  46. $news=$_POST["news"];
  47. $tabela='aktualnosciosk';
  48.  
  49. $img_tmp = $_FILES['img']['tmp_name']; //tymcz nazwa
  50. $img_name = $_FILES['img']['name']; // nazwa zdjecia
  51. $img_size = $_FILES['img']['size']; //rozmiar
  52. list($mt, $t) = explode(' ', microtime()); //niepowt nazw tworz foty
  53. $pic_name = $t.'_'.substr($mt, 2).'.jpg'; //nazwa foty do przetworzenia
  54.  
  55.  
  56. //zapis z tymczasowego zdjęcia
  57. if(is_uploaded_file($img_tmp)) {
  58. move_uploaded_file($img_tmp,'../news/duzyimg/'.$pic_name); //zapis zdjecia całego z nazwa
  59. chmod('../news/duzyimg/'.$pic_name,0755);
  60. }
  61. //koniec zapisu tymczasowego pliku


Ten post edytował dudziec 13.12.2010, 14:33:44
Go to the top of the page
+Quote Post
zamper
post
Post #4





Grupa: Zarejestrowani
Postów: 156
Pomógł: 17
Dołączył: 11.12.2010
Skąd: Częstochowa

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


Popatrz. Wydaj mi się że najpierw zapisujesz do katalogu, a potem go tworzysz smile.gif
I koniecznie do znacznika <form> dopisz enctype="multipart/form-data", oznacza że obrazek przybędzie wraz z danymi z formularza -.-

Ten post edytował zamper 13.12.2010, 15:29:36


--------------------
GG(22779936)
Go to the top of the page
+Quote Post
dudziec
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.06.2005
Skąd: Knurów

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


Cytat(zamper @ 13.12.2010, 15:20:16 ) *
Popatrz. Wydaj mi się że najpierw zapisujesz do katalogu, a potem go tworzysz smile.gif


zaraz nie rozumiem teraz ... jak najpierw zapisuje, a póxniej tworze?questionmark.gif?
Go to the top of the page
+Quote Post
zamper
post
Post #6





Grupa: Zarejestrowani
Postów: 156
Pomógł: 17
Dołączył: 11.12.2010
Skąd: Częstochowa

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


  1. move_uploaded_file($img_tmp,'../news/duzyimg/'.$pic_name); //zapis zdjecia całego z nazwa
  2.  
  3. chmod('../news/duzyimg/'.$pic_name,0755);


no nie wiem niej jestem obeznany w tym temacie smile.gif

i przyda ci się jeszcze takie coś:

  1. if ($_FILES['obrazek']['error'] > 0)
  2. {
  3. echo 'problem: ';
  4. switch ($_FILES['obrazek']['error'])
  5. {
  6. // jest większy niż domyślny maksymalny rozmiar,
  7. // podany w pliku konfiguracyjnym
  8. case 1: {echo 'Rozmiar pliku jest zbyt duży.'; break;}
  9.  
  10. // jest większy niż wartość pola formularza
  11. // MAX_FILE_SIZE
  12. case 2: {echo 'Rozmiar pliku jest zbyt duży.'; break;}
  13.  
  14. // plik nie został wysłany w całości
  15. case 3: {echo 'Plik wysłany tylko częściowo.'; break;}
  16.  
  17. // plik nie został wysłany
  18. case 4: {echo 'Nie wysłano żadnego pliku.'; break;}
  19.  
  20. // pozostałe błędy
  21. default: {echo 'Wystąpił błąd podczas wysyłania.';
  22. break;}
  23. }
  24. return false;
  25. }


przeczytaj to: http://kursphp.com/wysylanie_obrazka.php

Ten post edytował zamper 13.12.2010, 15:35:36


--------------------
GG(22779936)
Go to the top of the page
+Quote Post
dudziec
post
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.06.2005
Skąd: Knurów

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


A w moim przypadku co tam jest źle? i jaka ścierzka - jesli jest dobrze?questionmark.gif? bo chce wyeliminowac błąd zrozumiec dobrze i niepopełniac kolejnych podobnych błędów;)

Ten post edytował dudziec 13.12.2010, 16:40:29
Go to the top of the page
+Quote Post
zamper
post
Post #8





Grupa: Zarejestrowani
Postów: 156
Pomógł: 17
Dołączył: 11.12.2010
Skąd: Częstochowa

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


Wydaje mi się, że błąd tkwi albo w znacznik <form> albo w wysłaniu pliku. Spróbuj dopisać kod pokazujący przyczynę błędu i to pozwoli Ci szybciej dojść do problemu. Zastosuj dwie rzeczy:
1) enctype="multipart/form-data"
2) kod pokazujący błędy
3) <input type="hidden" name="MAX_FILE_SIZE" value="maksymalny_rozmiar_obrazka_w_bajtach" />

Powodzenia, i jestem pewien że te trzy rzeczy pomogą, lecz to też może być coś z zabezpieczeniami serwera, ale wątpie smile.gif


--------------------
GG(22779936)
Go to the top of the page
+Quote Post
dudziec
post
Post #9





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.06.2005
Skąd: Knurów

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


racja - zadziałało winksmiley.jpg
Go to the top of the page
+Quote Post
zamper
post
Post #10





Grupa: Zarejestrowani
Postów: 156
Pomógł: 17
Dołączył: 11.12.2010
Skąd: Częstochowa

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


smile.gif i tak przy okazji Twój skrypt jest BARDZO słabo zabezpieczony. Musisz sprawdzać typ pliku smile.gif

Ten post edytował zamper 14.12.2010, 17:27:51


--------------------
GG(22779936)
Go to the top of the page
+Quote Post
dudziec
post
Post #11





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.06.2005
Skąd: Knurów

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


Oczywiście racja;) tylko po koleji robie by się nie pogubic;)
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 Aktualny czas: 21.08.2025 - 16:45