블로그 이미지
예진이와 고고씽!! 괴스트

카테고리

분류 전체보기 (385)
Yejin (247)
Life (44)
Dev (62)
Etc (28)
Total63,965
Today136
Yesterday177

달력

« » 2010.08
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

'SFTP'에 해당되는 글 1건

  1. 2010/01/25 ssh2_connect 함수를 사용해 원격서버에 파일올리기
크리에이티브 커먼즈 라이선스
Creative Commons License
<?
# 설정
$host = 222.222.222.222";
$connect_id = "ididid";
$connect_pw = "pwpwpw";


class SFTPConnection
{
    private $connection;
    private $sftp;

    public function __construct($host, $port=22)
    {
        $this->connection = @ssh2_connect($host, $port);
        if (! $this->connection)
            throw new Exception("Could not connect to $host on port $port.");
    }

    public function login($username, $password)
    {
        if (! @ssh2_auth_password($this->connection, $username, $password))
            throw new Exception("Could not authenticate with username $username " .
                                "and password $password.");

        $this->sftp = @ssh2_sftp($this->connection);
        if (! $this->sftp)
            throw new Exception("Could not initialize SFTP subsystem.");
    }

    public function uploadFile($local_file, $remote_file)
    {
        $sftp = $this->sftp;
        $stream = @fopen("ssh2.sftp://$sftp$remote_file", 'w');

        if (! $stream)
            throw new Exception("Could not open file: $remote_file");

        $data_to_send = @file_get_contents($local_file);
        if ($data_to_send === false)
            throw new Exception("Could not open local file: $local_file.");

        if (@fwrite($stream, $data_to_send) === false)
            throw new Exception("Could not send data from file: $local_file.");

        @fclose($stream);
    }
}


    $sftp = new SFTPConnection($host, 22);
    $sftp->login($connect_id, $connect_pw);
   //$sftp->uploadFile("/tmp/to_be_sent", "/tmp/to_be_received");

  
    $sftp->uploadFile($tmp_file , $randumid);

?>

원격지 서버의 ftp 프로그램이 secure ftp(22번포트사용) 일 경우에는 ftp_connect () 함수를 이용할 수 없다.

따라서 ssh2_connect() 함수를 이용해야 하는데 이 함수를 사용하기 위해서는 openssl(lib), libssh2, php_ssh2 를 아파치에 설치해야 한다.



저작자 표시
Posted by 예진이네집 괴스트