• 技术文章 >PHP >PHP教程

    php实现sftp上传的方法

    小妮浅浅小妮浅浅2021-09-15 15:57:54原创111

    1、创建代码“class SFTPConnection private $connection...try{...}catch{...}”。

    2、执行“sftp -oPort=port user@server”。

    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);
     
        }
     
    }
     
     
     
    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";
     
    }

    以上就是php实现sftp上传的方法,希望对大家有所帮助。更多php学习指路:php教程

    本文转载于php中文网,如有侵犯联系作者修改。

    专题推荐:php sftp
    品易云
    上一篇:PHP函数__autoload失效原因 下一篇:php替换链接为空的方法

    相关文章推荐

    • php显示和实际时间不同的解决• php.ini中屏蔽所有错误的方法• php数组获取值的方法• php删除数组后2项元素的方法• php中intval()的使用• php隐藏中间字符的方法• php将字符串转换bool类型的方法• php返回错误代码的方法• php http文件上传的实现方法• php头编码的设置方法• php实现数字转换为大写的方法• PHP中销毁对象的方法• php获得表单提交数据的三种方法• php设置cookie记住密码的方法• PHP函数__autoload失效原因

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网