溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

php怎么實(shí)現(xiàn)sftp上傳功能

發(fā)布時(shí)間:2021-09-15 17:10:37 來(lái)源:億速云 閱讀:116 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“php怎么實(shí)現(xiàn)sftp上傳功能”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“php怎么實(shí)現(xiàn)sftp上傳功能”吧!

1、創(chuàng)建代碼“class SFTPConnection private $connection...try{...}catch{...}”。

2、執(zhí)行“sftp -oPort=port user@server”。

class SFTPConnection
 
{
 
    private $connection;
 
    private $sftp;
 
 
 
    public function __construct($host, $port=22)
 
    {
 
        $this->connection = @ssh3_connect($host, $port);
 
        if (! $this->connection)
 
            throw new Exception("Could not connect to $host on port $port.");
 
    }
 
 
 
    public function login($username, $password)
 
    {
 
        if (! @ssh3_auth_password($this->connection, $username, $password))
 
            throw new Exception("Could not authenticate with username $username " .
 
                                "and password $password.");
 
 
 
        $this->sftp = @ssh3_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("ssh3.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);
 
    }
 
}
 
 
 
try
 
{
 
    $sftp = new SFTPConnection("localhost", 22);
 
    $sftp->login("username", "password");
 
    $sftp->uploadFile("/tmp/to_be_sent", "/tmp/to_be_received");
 
}
 
catch (Exception $e)
 
{
 
    echo $e->getMessage() . "\n";
 
}

到此,相信大家對(duì)“php怎么實(shí)現(xiàn)sftp上傳功能”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI