如何从远程sftp文件服务器读取图像

时间:2012-06-28 13:56:20

标签: codeigniter file-upload sftp

所以我在网站上使用CodeIgniter PHP Framework。我们有一些服务器,一个live,一个dev和一个文件服务器。我们已经成功地将文件上传到我们的开发服务器,然后将它们安全地复制到我们的文件服务器进行存储。我们现在的问题是从文件服务器读取/显示我们的开发网站上的图像。我们的文件服务器使用sftp来保证安全。我们一直在研究从文件服务器传回图像对象的不同方法,但实际上并不是实际文件。有关如何做到这一点的任何建议?感谢。

CodeIgniter PHP框架 Linux服务器 文件服务器上的SFTP

...谢谢

2 个答案:

答案 0 :(得分:0)

好吧,我没有用sftp这么多,但我会尽量给你一些步骤。

  1. 您需要安装一些apache / php模块,例如ssh2,并使用extension=php_ssh2.dll启用它。

  2. 您可以创建自己的sftp库,如下所示:

    类Sftp {

    protected $connection;
    
    public function __construct($params)
        {
    
        }
    
        public function connect()
        {
        $server = "you-server.com";
        $port = "1234";
        $username = "admin";
        $password = "blabla";
    
        //connect
        $ssh2 = ssh2_connect($server, $port);
    
        if(ssh2_auth_password($ssh2, $username, $password))
        {
            //sftp session
            $this->connection = ssh2_sftp($resConnection);
        }
        else
        {
            echo "Unable to connect to server";
        }
        }
    
    public function download($image_name)
    {
        $image = fopen("ssh2.sftp://{$this->connection}/path/to/{$image_name}", 'r');
        fclose($image);
    }
    
    }
    
  3. 然后尝试使用它:
            $这 - > sftp->连接();         $ image = $ this-> sftp-> download('image-name');

答案 1 :(得分:0)

我在Github上找到了这个Codeigniter库。我还没有使用它,但似乎你需要做几个步骤才能使用Codeigniter加载库。否则这看起来很有希望

https://github.com/ipolar/CodeIgniter-sFTP-Library