【问题标题】:How to read images from a remote sftp file server如何从远程 sftp 文件服务器读取图像
【发布时间】:2012-06-30 01:37:07
【问题描述】:
所以我正在为网站使用 CodeIgniter PHP 框架。我们有几台服务器,一台实时服务器、一台开发服务器和一台文件服务器。我们已经成功地将文件上传到我们的开发服务器,然后将它们安全地复制到我们的文件服务器进行存储。我们现在的问题是一种从文件服务器读取/显示我们开发网站上的图像的方法。我们的文件服务器使用 sftp 来保证它的安全性。我们一直在研究从文件服务器传回图像对象的不同方法,而不是实际的文件。关于如何做到这一点的任何建议?谢谢。
CodeIgniter PHP 框架
Linux 服务器
文件服务器上的 SFTP
谢谢...
【问题讨论】:
标签:
codeigniter
file-upload
sftp
【解决方案1】:
好吧,我没有太多地处理 sftp,但至少我会尝试给你一些开始的步骤。
您需要安装一些 apache/php 模块,例如 ssh2 并使用 extension=php_ssh2.dll 启用它。
-
您可以制作自己的 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);
}
}
然后尝试像这样使用它:
$this->sftp->connect();
$image = $this->sftp->download('image-name');