Перенос данных в памяти на FTP-сервер без использования промежуточного файла

е всего, я знаю, что это дублирующая тема, но другой пост, который я нашел, не был полезен для моей ситуации, поэтому я решил создать новую.

Я пытаюсь получить файл с одного FTP-сервера и загрузить его на другой FTP-сервер.

Я использую этот код:

$ftp_server = "ftp_server";
$ftp_user_name = 'ftp_username' ;
$ftp_user_pass = 'ftp_pass' ;
$localDir = "full/path/";
$serverDir = "full/path/";

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (ftp_get($conn_id, $localDir, $serverDir, FTP_BINARY)) {
    // ftp_fput($conn_id, $file, $fp, FTP_ASCII))
}

Проблема, которая у меня есть, когда вы используетеftp_put Команда требует локальный файл, но этот файл не на моем компьютере, поэтому я не могу загрузить его на другой FTP.

Есть ли способ загрузить файл, который я только что получил сftp_get функция в другой сервер с помощьюftp_put? Без необходимости сначала загружать его на свой компьютер?

Спасибо!

 Jason K13 дек. 2017 г., 17:38
Вы не сможете сделать это с ftp без присутствия на коробке. Если бы вы могли использовать SSH. Возможно, вы сможете начать передачу файлов удаленно.
 Khetesh kumawat13 дек. 2017 г., 17:40
Вот пример загрузки файла через FTP. Надеюсь, вы поможете полностью.php.net/manual/en/ref.ftp.php

Ответы на вопрос(1)

Решение Вопроса

ftp_get а такжеftp_put может работать только с файлами, а не с папками.

использованиеftp_get загрузить файл с первого сервера в локальную временную папку / файл. А потом использоватьftp_put загрузить временный файл на второй сервер.

Если вы хотите избежать использования временного файла, вы можете загрузить файл в память, используяftp_fget и повторно загрузить на второй сервер, используяftp_fput.

PHP: Как мне прочитать файл .txt с FTP-сервера в переменную?Перенос данных в памяти на FTP-сервер без использования промежуточного файла

Ваш ответ на вопрос