Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kopiowanie plików na serwer
espeen
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.01.2006
Skąd: Kraków

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


Witam.
Mam taki problem otórz gdy napisze pliczek który kopiuje pliki na serwer to na krasnalu mi to działa jednak gdy wrzuce to na stronkę to niestety wtedy pojawia się błąd "no such file...".
Czy ktoś wie czemu tak się dzieje?
Dla złośliwych dodam od razu że mam na serwerze katalog z prawami 777 do którego chce kopiować (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Jeżeli ktoś wie co się dzieje to piszcie!

Ten post edytował espeen 8.02.2006, 10:23:04
Go to the top of the page
+Quote Post
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


jeszcze plik w ktorym jest skrypt wykonujacych te dzialania musi miec chmod 777.
Go to the top of the page
+Quote Post
revyag
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


A ustawiłeś poprawną ściezke do katalogu gdzie kopiujesz. Przydałby się też dokładniejszy opis błędu.
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(AxZx @ 2006-02-08 08:14:04)
jeszcze plik w ktorym jest skrypt wykonujacych te dzialania musi miec chmod 777.

Kto Ci tak nakłamał?
Nie musi tak być.

~espeen:
1. Proszę nadawać poprawne tematy! To co teraz masz w opisie tematu, powinno nim być. Za "Mały problem!" następny razem możesz dostać ostrzeżenie. Proszę poprawić.
2. Na 90% błąd działania jest spowodowany złą ścieżką, o czym już ~revyag napisał.
Go to the top of the page
+Quote Post
espeen
post
Post #5





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.01.2006
Skąd: Kraków

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


Ok więc oto dokładniejszy opis.
W pliku dodawanie_produktu.php mam cos takiego:
  1. <form action = index.php method = get ENCTYPE='multipart/form-data'>
  2. <input type=hidden name=MAX_FILE_SIZE value=50000>
  3. .
  4. .
  5. .
  6. Lokalizacja:<input type=file name=plik size=25>
  7. <input type = submit value=Dodaj name=send_d>


a w pliku index.php mam includa pliku akcja.php który obsluguje ten formularz:
  1. <?php
  2. if (isset($_GET['plik']) && $_GET['plik'] != '')
  3.  {
  4.  if (copy("$plik", "zdjecia/$id.jpg"))
  5.  {
  6.  echo "plik został dodany";
  7.  
  8.  }
  9.  else
  10.  {
  11.  print 'Nie można było dodać pliku.';
  12.  }
  13.  }
  14. ?>

I gdy sobie próbuje dodać pojawia się błąd:
Kod
Warning: copy(zdjecie1.jpg): failed to open stream: No such file or directory in /home/dealer/main/pkg/swift/creative/html/akcja.php on line 188


Używaj odpowiedniego bbcode. Poprawiam
revyag


Przy czym linia 188 to jest wlasnie ta
  1. <?php
  2. if (copy("$plik", "zdjecia/$id.jpg"))
  3. ?>
Go to the top of the page
+Quote Post
revyag
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Musisz podać absolutną ścieżkę do katalogu gdzie kopiujesz.
  1. <?php
  2. copy("$plik", "/sciezka/do/katalgou/zdjecia/$id.jpg")
  3. ?>
Go to the top of the page
+Quote Post
espeen
post
Post #7





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.01.2006
Skąd: Kraków

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


Tylko że scieżka absotulna to jak dobrze rozumie w moim przypadku to właśnie jest ta którą podaje czyli zdjęcia/$id.jpg.

Tzn jak wchodze ftp na moje konto to mam tylko dwa katalogi do wyboru html i jakis drugi. W katalgu html umieszczam wszystkie pliki i nie ma żadnej dłużeszej scieżki.
Bo chyba nie musze dawać /html/zdjecia/$id.jpg bo przeciez i index.php i akcja.php jest w katalogu html.

Jak ktoś się zna na tym to prosze jeszcze o wypowiedz to ważne a ja już nie mam pomysłu jak wgrać ten plik (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
mike
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


No przecież Ci już powiedziano.
Masz podać absolutną ścieżkę na serwerze.
/home/dealer/main/pkg/swift/creative/html/zdjecia/$id.jpg

I nie stosuj do takich rzeczy copy() tylko move_uploaded_file()
Go to the top of the page
+Quote Post
espeen
post
Post #9





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.01.2006
Skąd: Kraków

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


Ok fajnie przetestuje i dam znać dzięki za pomoc.
A czemu mam nie stosować copy?
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
A czemu mam nie stosować copy?
Bo copy() jak sama nazwa wskzauje, kopiuje plik, czyli pozostawia orginal na starym miejscu. A po co smieci mają się walać tam gdzie nie potrzeba? move_uploaded_file() przenosi. Dodatkwo:
Cytat
Funkcja ta sprawdza czy na pewno plik określony przez nazwa_pliku jest prawidło uploadowanym plikiem (to znaczy, że został uploadowany przez PHPowy mechanizm uploadowania HTTP POST). Jeśli plik jest prawidłowy, to zostanie przeniesiony do nazwy pliku wskazanej przez przeznaczenie .
To wszystko masz w manualu, no ale poco zaglądac...
http://pl.php.net/manual/pl/function.move-uploaded-file.php
Go to the top of the page
+Quote Post
espeen
post
Post #11





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.01.2006
Skąd: Kraków

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


Cytat(nospor @ 2006-02-08 10:26:26)
Bo copy() jak sama nazwa wskzauje, kopiuje plik, czyli pozostawia orginal na starym miejscu. A po co smieci mają się walać tam gdzie nie potrzeba? move_uploaded_file() przenosi. Dodatkwo:

Właśnie o to mi chodzi aby dodać zdjęcie na serwer ale kopia ma zostać u mnie na komp!

Chciałęm wszystkim powiedzieć że podanie bezwzględnej ścieżki nie daje zupełnie nic!
Dalej ten sam błąd ale będę dalej próbował coś z tym zrobić i jak mi sie uda napisze o co to chodziło.
Jednak gdyby ktoś miał jeszcze inny pomysł co to może być to bardzo prosze pisać .
Dodam że jak testuje to u siebie na komp to działa dopiero po umieszczeniu strony na serwerze pojawiają się te problemy!

Ten post edytował espeen 9.02.2006, 14:54:47
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Właśnie o to mi chodzi aby dodać zdjęcie na serwer ale kopia ma zostać u mnie na komp!
Ale php dziala po stronie serwera i z Twojego kompa to on ci nic nie bedzie wyrzucal. Plik przy uploaddzie jest wrzucany na serwer do katalogu tymczasowego, a ty go stamtąd masz zabrac i wrzucic tam gdzie chcesz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
espeen
post
Post #13





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.01.2006
Skąd: Kraków

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


Rozwiązanie problemu to...w formularzu nie można dawac get tylko koniecznie POST(IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !

Temat skończony!

Ten post edytował espeen 9.02.2006, 21:29:44
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 18:13