STFP连接和下载混淆
STFP Connection and Downloaded confusion
一直在尝试通过 PHP 将 Filezilla 和我的网站连接在一起,而 SFTP 被证明是乏味的。
你如何连接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";
}
}
?>
来自您的文件:
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 文件中即可。
一直在尝试通过 PHP 将 Filezilla 和我的网站连接在一起,而 SFTP 被证明是乏味的。
你如何连接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";
}
}
?>
来自您的文件:
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 文件中即可。