簡體   English   中英

如何使用PHP將一個文件夾本地文件復制到SFTP服務器

[英]How to Copy one folder local file to SFTP server using PHP

這是我的代碼,用於將單個文件從本地發送到SFTP服務器。 單個文件發送成功。 我想從本地向SFTP服務器發送一個文件夾,但是我不知道如何發送一個文件夾。 我需要幫助

<?php
    $src = 'xxxxxxx';
    $filename = 'test.txt';
    $dest = 'xxxxxxxx'.$filename;

    // set up sftp ssh-sftp connection
    $connection = ssh2_connect('xxxxxx', 22);
    ssh2_auth_password($connection, 'username', 'password');

    // Create SFTP session
    $sftp = ssh2_sftp($connection);

    $sftpStream = @fopen('ssh2.sftp://'.$sftp.$dest, 'w');

    try {
        if (!$sftpStream) {
            throw new Exception("Could not open remote file: $dest");
        }
        $data_to_send = @file_get_contents($src);

        if ($data_to_send === false) {
            throw new Exception("Could not open local file: $src.");
        }      
        if (@fwrite($sftpStream, $data_to_send) === false) {
            throw new Exception("Could not send data from file: $src.");
        } else {
            //Upload was successful, post-upload actions go here...
        } 
        fclose($sftpStream);                   
    } catch (Exception $e) {
        error_log('Exception: ' . $e->getMessage());
        fclose($sftpStream);
    }
    ?>

php中的ssh2_scp_send似乎僅支持發送文件。 也許這些方式有效:

1.compress folder, send the compressed file
2.use ssh2 to mkdir, then send each file iteratively
3.try with system() function to excute cmd line order "scp -r folder_path user@host:target_path"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM