как получить файл с ftp сервера и скопировать на собственный сервер - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу получить файл с клиентского сервера и скопировать их на свой сервер, я успешно подключился к клиентскому серверу, мой код указан ниже.

<code>// connect and login to FTP server
$ftp_server = "xx.xxx.xxx.xxx";
$ftp_username = 'xxxxxxxxxxxxxxx';
$ftp_userpass = 'xxxxxxxxxxxxxxxx';
 $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
echo "<pre>";
 print_r($login);
  echo "
"; // получить список файлов для / $ filelist =ftp_rawlist ($ ftp_conn, "/"); // закрыть соединение ftp_close ($ ftp_conn); echo "
";
print_r($filelist);
echo "
"; // вывести $ filelist var_dump ($ filelist);

Может кто угодно пожалуйстапосоветуйте как можно этого добиться?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Так я решил, теперь все файлы будут копироваться на ваш сервер.используйте ftp_ssl_connect , если это безопасно

$ftp_server = "xx.xxx.xxx.xxx";
$ftp_username = 'xxxxxxxxxxxxxx';
$ftp_userpass = 'xxxxxxxxxxxxxxxxxxx';

$ftp_conn = ftp_ssl_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);

ftp_pasv($ftp_conn,pasv);


$output_directory="files1/ftpgetfiles/137/";
// get the file list for /
$filelist = ftp_nlist($ftp_conn, "/");

foreach ($filelist as $key => $value) {
$fp = fopen($output_directory.$value,"w");
if(ftp_fget($ftp_conn, $fp, $value, FTP_BINARY))
{
    fclose($fp);
}
}

ftp_close($ftp_conn);
0 голосов
/ 14 февраля 2019

Вы можете использовать указанную здесь функцию ftp_fget: http://php.net/manual/en/function.ftp-fget.php

(ftp_fget () извлекает файл remote_file с FTP-сервера и записывает его в указанный указатель файла.)

Вот пример, приведенный в документации:

<?php

// path to remote file
$remote_file = 'somefile.txt';
$local_file = 'localfile.txt';

// open some file to write to
$handle = fopen($local_file, 'w');

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to download $remote_file and save it to $handle
if (ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 0)) {
 echo "successfully written to $local_file\n";
} else {
 echo "There was a problem while downloading $remote_file to $local_file\n";
}

// close the connection and the file handler
ftp_close($conn_id);
fclose($handle);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...