PHP脚本将文件从一个ftp传输到另一个ftp [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP脚本将文件从一个ftp传输到另一个ftp [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我想在没有要传输的文件的服务器上运行php脚本。此脚本应将文件从一个ftp(带密码)传输到另一个ftp(带密码)。有可能在PHP? ftp_fput只允许将本地文件传输到ftp服务器?这样对吗?

答案

我建议你使用thephpleagueFlysystem FTP adapter。您可以基于此包创建脚本并在控制服务器上使用它,以便将文件从ftp服务器A传输到ftp服务器B.

这是一个使用sftp将数据从服务器A传输到服务器B的示例脚本。注意:以下脚本假定您已安装flysystem包(例如composer require league/flysystem)。

<?php

require_once __DIR__ . '/vendor/autoload.php';

use League\Flysystem\Filesystem;
use League\Flysystem\Sftp\SftpAdapter;

$source = new Filesystem(new SftpAdapter([
    'host' => 'server A',
    'port' => 'server A port',
    'username' => 'server A sftp user',
    'password' => 'server A sftp pwd',
    'root' => 'source folder on server A',
    'timeout' => 10,
]));

$destination = new Filesystem(new SftpAdapter([
    'host' => 'server B',
    'port' => 'server B port',
    'username' => 'server B sftp user',
    'password' => 'server B sftp pwd',
    'root' => 'destination folder on server B',
    'timeout' => 10,
]));

$files = $source->listContents();

foreach ($files as $file) {
    $data = $source->read($file['path']);
    $destination->put($file['path'], $data);
}

它建立了与源($source)和目标($destination)服务器的连接。列出源(listContents()方法)和foreach循环中的内容,它读取文件(read())并将它们的内容(put())逐个放入所需的位置。

以上是关于PHP脚本将文件从一个ftp传输到另一个ftp [重复]的主要内容,如果未能解决你的问题,请参考以下文章

ftp文件传输是啥意思

使用 WinSCP .NET 程序集防止通过 FTP 传输不完整的文件

SSIS - 8.FTP 任务

如何从 FTP 下载文件并使用 PHP 将其流式传输到客户端

计算机网络HTTP:HTTP 和 FTP

批处理脚本,用于复制FTP文件夹中的所有文件