Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ftp_get: No such file or directory
Forum PHP.pl > Forum > PHP
q3trm
Cześć.


Zacząłem się bawić z uploadowanie plików serwera, za pomocą funkcji oferowanych przez PHP. I mam problem z pierwszą próbą uploadu pliku zdalnego.

Dodam, że skrypt uploaduje pliki z tego samego serwera, tylko z innego katalogu. Wiem, że do takich operacji istnieją inne funkcje, natomiast ja to robię w celach naukowych :-o .

  1. $localfile ='/home/a2485165/public_html/lala.txt';
  2. $remotefile ='/home/a2485165/temp/t.txt';



Tak wyglądają plik lokalny(localfile) i zdalny(remotefile).

  1.     
  2. $fo = fopen ($localfile, 'w');
  3. $suces = ftp_fget($connect, $fo, $remotefile, FTP_ASCII);


I w tym momencie dostaję: Warning: ftp_fget() [function.ftp-fget]: Can't open /home/a2485165/temp/t.txt: No such file or directory
Katalog z plikiem istnieje , sprawdzałem za pomocą funkcji file_exists, chmod dałem 777 zapis + odczyt. Pomóżcie mnie naprowadzić na rozwiązanie problemu.


ftp_connect() zwraca zasób(strumien ftp), ftp_login() true
Konochamaru
z jakiego poziomu katalogu to robisz ? Być moze plik instnieje tak jak mówisz tylko jest zła ścieżka
q3trm
Z public_html.

To ciekawe, file_exists($remotefile), sprawdza czy plik istnieję w odrębnym katalogu i zwraca TRUE. Funkcja file_exists nie zależnie od katalogu w jakim zostaję wywołana, potrafi sprawdzić istnienie każdego pliku na serwerze?


W ramach testu, zainicjowałem funkcję touch() z ścieżką ze zmiennej $remotefile(dodając nazwę nieistniejącego pliku), rezultat był taki, że nic się nie stało, ani błędu, ani akcji. Kolejnym krokiem było sprwdzenie czy ścieżka jest poprawna, więc specialnie podmieniłem ścieżkę w funkcji touch() na nieprawidłową, wydrukowało błąd, czyli ścieżki są dobre smile.gif. Dodam, że korzystam z usług hostingowych 000webhost.
dzastin
file_exist sprawdza czy plik istnieje na dysku na serwerze na którym wywoływany jest php, ftp_get obsługuje zdalny katalog z obcego serwera i korzeń systemu plików jest ustalany przez demona ftp. Ponieważ w Twoim przypadku jest to ten sam serwer, to wydaje Ci się, że ścieżka dla ftp_get jest poprawna, a w rzeczywistości nie jest. Głównym katalogiem dla Twojego ftp jest prawdopodobnie /home/a2485165/, więc jako ścieżkę podałbym /temp/t.txt
q3trm
Cytat(dzastin @ 27.02.2013, 17:59:52 ) *
file_exist sprawdza czy plik istnieje na dysku na serwerze na którym wywoływany jest php, ftp_get obsługuje zdalny katalog z obcego serwera i korzeń systemu plików jest ustalany przez demona ftp. Ponieważ w Twoim przypadku jest to ten sam serwer, to wydaje Ci się, że ścieżka dla ftp_get jest poprawna, a w rzeczywistości nie jest. Głównym katalogiem dla Twojego ftp jest prawdopodobnie /home/a2485165/, więc jako ścieżkę podałbym /temp/t.txt



I tak jest jak mówisz oneeyedsmiley02.png , dzięki.
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.