曾经试图通过PHP和SFTP将Filezilla和我的网站连接在一起很繁琐。
您如何与STFP连接,在线信息大部分是非常简短的,我已经下载了SSH2.php文件,并使用了文件(测试文件)中包含的代码,但它不起作用。页面未加载,由于使用了我怀疑的SSH2功能,因此显示错误消息。
连接
// Connect to FileZilla
include("../model/connection.php");
$con = new SFTPobj();
$connect = $con->serverConnection();
测试文件:
Class SFTPobj{
function serverConnection()
{
include('../controller/SSH2.php');
$server = "xx";
$user = "xx";
$pass = "xx";
$ssh = new Net_SSH2($server);
if (!$ssh->login( $user, $pass)) {
exit('Login Failed');
}
echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
}
}
测试文件-*代码(大部分不相关):
<?php
// Connect to database
include("../model/connection.php");
$con = new SFTPobj();
$connect = $con->serverConnection();
if(isset($_POST['submit']))
{
$file = $_FILES['file'];
print_r($file);
$fileName=$_FILES['file']['name'];
$fileTmpName=$_FILES['file']['tmp_name'];
$fileSize=$_FILES['file']['size'];
$fileError=$_FILES['file']['error'];
$fileType=$_FILES['file']['type'];
#only allow images
$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
#Image types
$allowed = array('jpg','jpeg', 'png');
#Check file type
if(in_array($fileActualExt,$allowed))
{
if($fileError === 0)
{
if($fileSize < 500000) #500KB
{
$fileNameNew = uniqid('', true).".".$fileActualExt; #Random Number Generate
$fileDestination = '../view/pictures/week1'.$fileNameNew;
move_uploaded_file($fileTmpName,$fileDestination);
header("Location:../view/test.php?uploadSuccess");
}else{
echo "Your file is too big";
}
}else{
echo "There was an error uploading your file";
}
}else{
echo "You can not upload files of this type";
}
}
?>
答案 0 :(得分:0)
从您的文件中
include('../controller/SSH2.php');
在zip文件中,下载SSH2.php在Net /目录中。还有一个Crypt /目录和Math /目录。这两个都是必需的,相对路径也必须正确。
您已经从Net /目录中删除了SSH2.php的事实使我认为您可能没有其他必要的文件。而且即使您这样做,我也怀疑它们是否位于正确的相对位置。
此外,由于您似乎正在使用1.0分支,因此可能需要设置include_path才能使其正常工作,具体取决于放置目录的位置:
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
include('Net/SSH2.php');
?>
真的,我只是建议反对选择并选择您认为需要的文件。只需获取整个phpseclib zip文件并将其转储到phpseclib文件中。