Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z fukcja move_uploaded_files
Skr3czu
post 25.05.2007, 18:24:13
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 12.03.2007

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


witam,

mam pewnien problem z funckjami copy() i move_uploaded_files()
Otóż na każdym zeswerze występuję ten sam problem, a mianowicie obydwie funckje zwracają wartośc false.
Chmody mam dobrze ustawione

Oto kod (formularz)

  1. <?php
  2. echo '<?xml version="1.0" encoding="iso-8859-2"?>';
  3. ?>
  4. <div>
  5. <form enctype="multipart/form-data" action="index.php?page=galeria/dodaj_zdjecie2" method="POST">
  6. <input type="hidden" name="MAX_FILE_SIZE" value="50000" />
  7. Zdjęcie :&nbsp;&nbsp;
  8. <input name="plik" type="file" size="20" /> <br>
  9. Kategoria: <select size="1" name="kategoria"><br>
  10. <?
  11. $db = file("galeria/kategorie.php");
  12. $db_dziel = explode(',', $db[0]);
  13. foreach($db_dziel as $wiersz)
  14.  {
  15.  //wyswietlanie kategorii
  16.  echo '<option value="'.$wiersz.'">'.$wiersz.'</option>';
  17.  }
  18. ?>
  19. </select>
  20. <br>
  21. <input type="submit" value="Wyślij zdjęcie" /></form>
  22. </div>
  23.  
  24. Kod (skrypt wykonuący):
  25.  
  26. <?php
  27. $kategoria = $_POST['kategoria'];
  28. $plik = $_POST['plik'];
  29. chmod("galeria/$kategoria", 0777);
  30.  $przesylanie = copy("$plik", "galeria/$kategoria/$plik"); // kopiowanie pliku
  31.  if($przesylany)
  32.  {
  33.  echo "Plik został skopiowany<br>
  34.  Informacje o skopiowanym pliku:<br>
  35.  Nazwa: $plik<br>
  36.  Wielkość: $plik"; // komunikat
  37.  }
  38.  else
  39.  {
  40.  echo "Przesyłanie zdjęcia nie powiodło się!";
  41.  }
  42.  
  43. ?>
Go to the top of the page
+Quote Post
-=Peter=-
post 25.05.2007, 18:33:14
Post #2





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


zamień:
  1. <?php
  2. $plik = $_POST['plik'];
  3. ?>


na:

  1. <?php
  2. $plik = $_FILES['plik']['tmp_name'];
  3. ?>


oraz

zamień:
  1. <?php
  2. $przesylanie = copy("$plik", "galeria/$kategoria/$plik");
  3. ?>


na

  1. <?php
  2. $przesylanie = copy("$plik", "galeria/$kategoria/$_FILES['plik']['name']");
  3. ?>


Sprawdź dla bezpieczeństwa za pomocą funkcji is_uploaded_file(), czy plik napewno został przesłany. Lepiej używać funkcji move_uploaded_file() niż copy()


--------------------
Go to the top of the page
+Quote Post
Skr3czu
post 25.05.2007, 18:39:41
Post #3





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 12.03.2007

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


Nadal nie dziala funkcja zwaraca wartosc false.Robilem z funkcja move_uploaded_files(), ale tez nie dziala sad.gif
Go to the top of the page
+Quote Post
webdice
post 25.05.2007, 18:47:27
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Masz ustawiony upload_tmp_dir?
Go to the top of the page
+Quote Post
Skr3czu
post 25.05.2007, 18:49:08
Post #5





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 12.03.2007

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


a jak się to ustawia?
Go to the top of the page
+Quote Post
webdice
post 25.05.2007, 18:53:09
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




albo w php.ini albo przez ini_set" title="Zobacz w manualu PHP" target="_manual

Ten post edytował webdicepl 25.05.2007, 18:53:31
Go to the top of the page
+Quote Post
Skr3czu
post 25.05.2007, 18:54:21
Post #7





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 12.03.2007

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


A co w pliku php.in ?
Go to the top of the page
+Quote Post
webdice
post 25.05.2007, 18:55:36
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Trochę samodzielności :/

Kod
upload_tmp_dir = /tmp


  1. <?php
  2. ini_set ('upload_tmp_dir', '/tmp');
  3. ?>


EDIT: Tylko scieżki podaj do istniejących katalogów.

Ten post edytował webdicepl 25.05.2007, 18:56:07
Go to the top of the page
+Quote Post
Skr3czu
post 25.05.2007, 19:01:20
Post #9





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 12.03.2007

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


Nadal to nie dziala ...
Go to the top of the page
+Quote Post
-=Peter=-
post 25.05.2007, 19:42:56
Post #10





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


usuń linijkę
  1. <?php
  2. chmod("galeria/$kategoria", 0777);
  3. ?>

bo niekoniecznie ustawi Ci ta funkcja chmody na 0777 (istnieje jakiś współcznynnik [nie pamietam dokladnie jaki], który odejmuje sie od liczby podanej w funkcji chmod()). Poprostu ręcznie ustaw chmody.

  1. <?php
  2. if(is_uploaded_file($_FILES['plik']['tmp_name'])){
  3. if(move_uploaded_file($_FILES['plik']['tmp_name'], '/galeria/'.$kategoria.'/'.$_FILES['plik']['name'])){
  4. echo 'Przeslano plik';
  5. }else{
  6.  echo 'Wystąpił błąd';
  7. }
  8. }else{
  9. echo 'Plik nie pochodzi z formularza.';
  10. }
  11. ?>


Edit: teraz jest dobrze ;p

Ten post edytował -=Peter=- 25.05.2007, 19:49:40


--------------------
Go to the top of the page
+Quote Post
jarmiar
post 25.05.2007, 19:46:11
Post #11





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


ja mam podobny problem

nie mam ustawionej ścieszki do upload_temp_dir

więc sobie ją wstawiłem do pliku php.ini. (mam własny serwer lokalny krasnal serv) odpaliłem skrypt z phpinfo() a tu mi cały czas wyświetla że not value

i z uploadsem mam też problem

a z tego twojego kodu to mi wywala błąd:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\usr\apache\httpd\html\galeria\dodaj_zdjecie2.php on line 3

EDIT:
Serwer mam też na Homie


Ten post edytował jarmiar 25.05.2007, 19:56:18


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
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: 14.07.2025 - 12:14