STFP连接和下载混乱

时间:2018-10-28 15:20:57

标签: php phpseclib

曾经试图通过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";
        }



    }

?>

1 个答案:

答案 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文件中。