在PHP中的两个远程FTP服务器之间传输文件

时间:2017-12-13 16:29:36

标签: php 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函数获得的文件上传到另一台服务器?无需先在PC上下载它?

谢谢!

1 个答案:

答案 0 :(得分:2)

ftp_getftp_put都可以仅对文件进行操作,而不是文件夹。

使用ftp_get将文件从第一台服务器下载到本地临时文件夹/文件。然后使用ftp_put将临时文件上传到第二台服务器。

如果您想避免使用临时文件,可以使用ftp_fget将文件下载到内存中,然后使用ftp_fput重新上传到第二台服务器。