【发布时间】:2015-10-28 06:39:48
【问题描述】:
我想做什么
我想通过sftp 使用php upload/download 一个文件。
phpseclib-library 看起来很有前途。
我已经做过的事情
我将 conposer.json 更改为:
{
"require": {
"nicolab/php-ftp-client":"*",
"php-curl-class/php-curl-class":"*",
"phpseclib/phpseclib":"*"
}
}
然后我更新了我的目录。 Composer 将库安装在 vendor 文件夹中。
问题
问题是我无法创建新的SFTP-Object。
Fatal error: Class 'SFTP' not found in...
我也尝试将NET_SFTP 作为类名,但这也不起作用。
我不明白的一件事是为什么on,它声明类名是NET_SFTP,而在源代码中它明确称为SFTP。
自动加载似乎也不起作用。
我将echo "testline"; 添加到库中以查看文件是否已加载。如果我使用自动加载,什么都不会发生。如果我手动包含该文件,则会打印"testline",但仍然找不到该类。
我的代码
示例一
<?php
include '/vendor/autoload.php';
$sftp = new SFTP('domain');
if (!$sftp->login('user', 'pass')) {
exit('Login Failed');
}
->没有回声
示例二:
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib/phpseclib');
include('Net/SSH2.php');
include('Net/SFTP.php');
$sftp = new SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
exit('Login Failed');
}
->回声
在这两个示例中都找不到类。
【问题讨论】:
-
只是想注意 phpseclib 3.0,它的
use phpseclib3\Net\SFTP;