我可以将本地目录上传到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);
我认为上面的代码只是按文件名上传。
答案 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_contents
和file_put_contents
非常无效,因为您将整个文件内容加载到内存中。
更好地使用fopen
和stream_copy_to_stream
。