Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak z ftp przegrac plik na ftp
Forum PHP.pl > Forum > PHP
Therronis
jak z ftp przegrac plik na ftp?
bede wdzieczny za pomoc :?
kufel
POniższa funkcja łączy z serwerem FTP
[php:1:befd70f130]<?php
function polacz($haslo)
{
@$conn_id = ftp_connect('ftp.zhp.org.pl');
@$login_result = ftp_login($conn_id, '10317', $haslo);
@$pasiv = ftp_pasv($conn_id, 1);
$dir = "nowinki/";
@$kat = ftp_chdir($conn_id, $dir);
if ((!$conn_id) || (!$login_result) || (!$kat)) {
echo błąd serwera FTP.<br><font color="#CC0000">SPRÓBUJ PONOWNIE!!</font>';
end;
}
return $conn_id;
}?>

?>[/php:1:befd70f130]

A ta z kolei wysyła wybrany plik na serwer:
[php:1:befd70f130]
<?php
function wyslij($ftpId, $oryginal, $kopia)
{
@$wyslij = ftp_put($ftpId, $kopia, $oryginal, FTP_BINARY);
if (!$wyslij)
{
echo '<br>Zapisywanie <font color="#FF0000">NIE POWIODŁO SIĘ!</strong></font><BR>';
}
else
{
echo Plik zapisany <font color="#3333FF"><strong>POMYŚLNIE</strong></strong></font><br>';
}
}
?>[/php:1:befd70f130]

No i sprawdź jeszcze ten post: http://forum.php.pl/viewtopic.php?t=7042
Therronis
niechaj wytlumacze dokladniej, bo nie chodzi mi o zgrywanie z komputera internauty na serwer, tylko z serwera ftp na inny serwer ftp. hmmm... wlasnie nie moge tego zrozumiec sad.gif wywala mi tez Call to undefined function: ftp_connect() in .../public_html/xlan/logger.php on line 19 wiec mysle ze cos zle robie - ale to jest raczej brak w moim php? nie wiem, blagam wrecz o pomoc... sad.gif

korzystam teraz z czytelniejszego kodu ktory jest na php.net

[php:1:00fdb3b879]<?php
// ustaw podstawowe połączenie
$conn_id = ftp_connect($ftp_server);

// zaloguj się nazwą użytkownika i hasłem
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// sprawdź połączenie
if ((!$conn_id) || (!$login_result)) {
echo "Połączenie FTP się nie powiodło!";
echo "Próbowano połączyć się do $ftp_server jako użytkownik"
. $ftp_user_name;
die;
} else {
echo "Połączony z $ftp_server jako użytkownik $ftp_user_name";
}
?>[/php:1:00fdb3b879]
kufel
jak wkleisz tu kod to bedziemy mogli porozmawiać smile.gif
Therronis
nie wiem, cos chyba z moim serwerem php jest - podalem kod w tym samym czasie kiedy Ty napisales wiadomosc, wiec zczytalem Twoje mysli winksmiley.jpg
kufel
Na mój gust odwołujsz się do funkcij która nie istnieje (to zresztą napisał ci paser php), więc sprawdz czy na pewno zdefiniowałeś serwer obsługuje te funkcje, bo jak narazie wyskakuje ci błąd wskazujący na to że odwołujesz się do nieistniejącej funkcji i nic ponadto
DeyV
Cytat
ftp_connect
(php 3>= 3.0.13, php 4 )

ftp_connect -- Otwiera połączenie FTP


Czyli funkcja standardowo istnieje. Jeśli nie możesz z niej korzystać, to oznacza, że z jakiegoś powodu masz ją na serwerze wyłączoną.
Jeśli to serwer komercyjny - czas na telefon do admina.
Jak darmowy... :/
qwerkon
Ja kiedys w jakiejs ksiedze znalazlem taki oto kod do robienia kopi lustrzanej, moze sie to komus przyda.
[php:1:b30c6f2eb9]<?php
// ustawienie zmiennych - nalezy je zmienic aby pasowaly do aplikacji
$komp=""; // adres serwera ftp, z ktorego chcemy zassac plik
$uzytkownik=""; // login do serwera ftp
$haslo=""; // haslo do serwera ftp
$plikzdalny=""; // sciezka do pliku, ktory chcemy zassac
$pliklokalny=""; // sciezka gdzie plik ma byc zapisany

// laczenie z komputerem
$lacz=ftp_connect($komp);
if(!$lacz){
echo "Blad: Polaczenie z serwerem niemozliwe<br>";
exit;
}
echo "Polaczono z $komp.<br>";

// logowanie
@$wynik=ftp_login($lacz, $uzytkownik, $haslo);
if(!$wynik){
echo "Blad: Nie mozna zalogowac sie jako $uzytkownik<br>";
ftp_quit($lacz);
exit;
}
echo "Zalogowano jako $uzytkownik<br>";

// sprawdzenie dat plikow w celu okreslenia koniecznosci uaktualnienia
echo "Sprawdzanie daty pliku...<br>";
if(file_exists($pliklokalny)){
$czaslokalny=filemtime($pliklokalny);
echo "Plik lokalny zmodyfikowany";
echo date("G:i j-M-Y", $czaslokalny);
echo "<br>";
}else{
$czaslokalny=0;
}
$czaszdalny=ftp_mdtm($lacz, $plikzdalny);
if(!($czaszdalny >= 0)){
// To nie oznacza, ze plik nie istnieje, serwer moze nie dostarczac czasu modyfikacji
echo "Dostep do czasu pliku zdalnego niemozliwy.<br>";
$czaszdalny=$czaslokalny+1; //zapewnienie uaktualnienia
}else{
echo "Plik zdalny zmodyfikowany ";
echo date("G:i j-M-Y", $czaszdalny);
echo "<br>";
}
if(!($czaszdalny > $czaslokalny)){
echo "Kopia lokalna jest aktualna.<br>";
exit;
}

// pobieranie pliku
echo "Pobieranie pliku z serwera...<br>";
$wp=fopen($pliklokalny,"w");
if(!$sukces=ftp_fget($lacz, $wp, $plikzdalny, FTP_BINARY)){
echo "Blad: pobranie pliku niemozliwe";
ftp_quit($lacz);
exit;
}
fclose($wp);
echo "Plik pobrany pomyslnie";

// zamkniecie polaczenia z komputerem
ftp_quit($lacz);
?>[/php:1:b30c6f2eb9]
Therronis
bardzo dziekuje za odpowiedzi.
jezeli chodzi o serwer to adminem jest moj dobry kolega i mam dostep do php.ini smile.gif hmmm... szukalem tam, ale nic nie znalazlem, chyba zle szukalem. port ftp jest odblokowany wiec tez powinno byc dobrze... hm... moze cos php sie rozwalilo, napewno wiem ze mam wersje 4 smile.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.