使用PHP将本地文件夹中的所有文件上载到SFTP

时间:2018-04-19 10:59:28

标签: php sftp

我可以将本地目录上传到SFTP中的远程目录吗? 或者我可以将目录中的所有文件上传到SFTP吗?

我尝试以这种方式上传目录中的所有文件:

$file = "C:/incoming/360/upload/".date("Ymd")."/*.*";
$dest = "/testing/*.*";

$contents = file_get_contents($file);
file_put_contents("ssh2.sftp://{$sftp}/testing/{$dest}", $contents);

我认为上面的代码只是按文件名上传。

1 个答案:

答案 0 :(得分:0)

您已迭代本地文件并逐个上传:

$files = glob("C:/incoming/360/upload/".date("Ymd")."/*");

foreach ($files as $file)
{
    $contents = file_get_contents($file);
    $basename = basename($file);
    file_put_contents("ssh2.sftp://{$sftp}/testing/{$dest}", $contents);
}

虽然请注意,在处理较大的文件时,使用file_get_contentsfile_put_contents非常无效,因为您将整个文件内容加载到内存中。

更好地使用fopenstream_copy_to_stream