Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] polaczenie ftp przez php
Forum PHP.pl > Forum > Przedszkole
macza
Witam, mam taki oto skrypt:
  1. <?php
  2. // define some constants
  3.  $ftpserver = &#8220;ftp.boo.pl”;
  4.  $ftpdirectory = &#8220;/public_html”;
  5.  $download = &#8220;somefile-0.1.tar.gz”;
  6.  $tempfile = tempnam(&#8220;/tmp”, “ftp”);
  7.  $destdir = &#8220;/downloads”;
  8.  if (!($ftp = ftp_connect($ftpserver))) { print(&#8220;Unable to connect to $ftpserver!<br>n”); exit();
  9.  }
  10.  print(&#8220;Connected to $ftpserver…<br>n”);
  11.  if (!ftp_login($ftp, &#8220;anonymous”, “someone@somehost.com”)) { print(“Unable to login.<br>n”); exit();
  12.  }
  13.  print(&#8220;Logged in.<br>n”);
  14.  ftp_pasv($ftp, FALSE);
  15.  if(!ftp_chdir($ftp, $ftpdirectory)) { print(&#8220;Unable to change directory to $ftpdirectory!<br>n”); exit();
  16.  }
  17.  $fp = fopen($tempfile, &#8216;w’);
  18.  if(!ftp_fget($ftp, $fp, $download, FTP_IMAGE)) { print(&#8220;Unable to download file $download!<br>n”); exit();
  19.  }
  20.  fclose($ftp);
  21.  ftp_quit($ftp);
  22.  if(!rename($tempfile, $destdir . &#8220;/” . $download)) { print(“Unable to move file to destination directory!<br>n”); exit();
  23.  }
  24.  print(&#8220;File $download successfully downloaded.<br>n”);
  25. ?>

ok skrypt loguje sie i pisze takie cos:
Warning: fclose(): supplied resource is not a valid stream resource in /home/accounts_m/macza/public_html/_/ftp.php on line 28

Warning: rename(): open_basedir restriction in effect. File(/_/index.php) is not within the allowed path(s): (/home/accounts_m/macza:/tmp) in /home/accounts_m/macza/public_html/_/ftp.php on line 30
Unable to move file to destination directory!

co mam zrobic zeby zgrywalo mi to? please pomóżcie! ;p
XDocTorX
sprawdz sciezki dokladnie i prawa dostepu (chmod).
macza
a mozesz mi powiedziec jak chce np:
mam ten skrypt w /_/ftp.php a chce zgrac do /_/strony jak to zrobic? wiem jak chomod ustawic itd ale jak to w tym skrypcie ustawic...
XDocTorX
czy ty chcesz uploadowac na ten sam server co strona www tak ? czy to jest inny server, bo nie musisz łączyć przez ftp logowac tylko normalnie przesłać

pozatym uzyles do zmiany katalogu
if(!rename($tempfile, $destdir . "/” . $download)) { print(“Unable to move file to destination directory!<br>\n”); exit();
}
macza
na ten co jest skrypt
erix
Cytat
Warning: fclose(): supplied resource is not a valid stream resource in /home/accounts_m/macza/public_html/_/ftp.php on line 28

Masz literowkę. Zamykaj $fp przez fclose" title="Zobacz w manualu php" target="_manual, a nie $ftp

Cytat
Warning: rename(): open_basedir restriction in effect. File(/_/index.php) is not within the allowed path(s): (/home/accounts_m/macza:/tmp) in /home/accounts_m/macza/public_html/_/ftp.php on line 30

Chcesz przenieść plik z katalogu, który blokuje dyrektywa open_basedir w php.ini.
Spróbuj tworzyć folder tymczasowy na swoim koncie, bo z komunikatu wnioskuję, że próbujesz odwołać się do /tmp.
macza
ok zmienilem teraz mam:
  1. <?
  2. // define some constants
  3.  $ftpserver = "ftp.boo.pl";
  4.  $ftpdirectory = "/public_html";
  5.  $download = "index.php";
  6.  $tempfile = tempnam("/tmp", "ftp");
  7.  $destdir = "";
  8.  if (!($ftp = ftp_connect($ftpserver))) { print("Unable to connect to $ftpserver!<br>n"); exit();
  9.  }
  10.  print("Connected to $ftpserver...<br>n");
  11.  if (!ftp_login($ftp, "macza", "macza11")) { print("Unable to login.<br>n"); exit();
  12.  }
  13.  print("Logged in.<br>n");
  14.  ftp_pasv($ftp, FALSE);
  15.  if(!ftp_chdir($ftp, $ftpdirectory)) { print("Unable to change directory to $ftpdirectory!<br>n"); exit();
  16.  }
  17.  $fp = fopen($tempfile, 'w');
  18.  if(!ftp_fget($ftp, $fp, $download, FTP_IMAGE)) { print("Unable to download file $download!<br>n"); exit();
  19.  }
  20.  fclose($fp);
  21.  ftp_quit($ftp);
  22.  if(!rename($tempfile, $destdir . "" . $download)) { print("Unable to move file to destination directory!<br>n"); exit();
  23.  }
  24.  print("File $download successfully downloaded.<br>n");
  25. ?>

wszystko ok tylko jak teraz wziac zeby zapisany plik ZAPISYWAŁ sie tam do folderu 'kopia' w folderze skryptu questionmark.gif
erix
Zwrócę Ci tylko uwagę na linijkę z:
  1. <?php
  2. $tempfile = tempnam("/tmp", "ftp");
  3. ?>
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.