Загрузить локальный файл на другой сервер, используя PHP FTP или CURL - PullRequest
0 голосов
/ 04 мая 2020

Я попытался загрузить локальный файл на онлайн-сервер. Я создал FTP-соединение для загрузки файла, но он не работал.

Вот код, который я пробовал:

// connect and login to FTP server

$ftp_server     = 'ftp.example.so';
$ftp_user_name  = 'name@example.so';
$ftp_user_pass  = 'password';

$ftp_conn       = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login          = ftp_login($ftp_conn, $ftp_user_name, $ftp_user_pass);


if($login) {
   echo 'connected<br>'; 

   $local_file = 'file_name.txt';
   $server_dir = 'https://example.so/folder/';


   // upload a file
   if (ftp_put($ftp_conn, $server_dir, $local_file, FTP_ASCII)) {
       echo "successfully uploaded $local_file\n";
       exit;
   } else {
       echo "There was a problem while uploading $local_file\n";
       exit;
   }


} 

После запуска я получил Warning: ftp_put(): Can't open that file: No such file or directory in D:\XAMPP\htdocs\project\upload.php on line 101

Ответы [ 3 ]

1 голос
/ 04 мая 2020

Аргумент $remote_file ftp_put представляет собой путь к файлу на FTP-сервере.

Вы передаете URL к папке .

Если должно быть как:

$remote_file = "/folder/file_name.txt";
0 голосов
/ 04 мая 2020

Теперь это работает, я изменил

if($login) {
   echo 'connected<br>'; 

   $local_file = 'file_name.txt';
   // $server_dir = 'https://example.so/folder/'; no need

   // upload a file
   if (ftp_put($ftp_conn, $local_file, $local_file, FTP_ASCII)) { // changed
       echo "successfully uploaded $local_file\n";
       exit;
   } else {
       echo "There was a problem while uploading $local_file\n";
       exit;
   }

} 
0 голосов
/ 04 мая 2020

проверьте правильный путь к файлу 'file_name.txt';

...