我正在编写一个php脚本,该脚本通过javascript中的ajax调用。我打算连接到ftp服务器并列出“ public_html”文件夹中的所有文件。我也想打印当前的ftp目录,但是当我尝试时,它在控制台中显示为空。我可以连接到ftp服务器,但是我不知道当前目录是什么。
//Get ftp user/pass
$ftp_server = "ftp." . $_POST['hostname'];
$ftp_username = $_POST['user'];
$ftp_userpass = $_POST['pass'];
echo "console.log('attempting to connect to ftp host: $ftp_server, user: $ftp_username, password: $ftp_userpass');\n";
$ftp_conn = ftp_connect($ftp_server) or die("alert('Could not connect to $ftp_server');\n");
// turn passive mode on
//ftp_pasv($ftp_conn, true);
ftp_chdir($ftp_conn, 'public_html');
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
// then do something...
echo "console.log('Connected to FTP');\n";
// get contents of the current directory
$curdir = ftp_pwd($ftp_conn);
echo "console.log('Current dir: $curdir');\n";
$contents = ftp_nlist($ftp_conn, ".");
// output $contents
echo "var files = [];";
foreach ($contents as $file){
echo "var tempFile = '$file';\n
files.push(tempFile);\n";
}
echo "console.log(files);\n";
// close connection
ftp_close($ftp_conn);
?>
从以下位置交换这两行:
ftp_chdir($ftp_conn, 'public_html');
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
至:
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
ftp_chdir($ftp_conn, 'public_html');
[在使用ftp_pasv()时有一些问题;
尝试对此行发表评论:
ftp_pasv($ftp_conn, true);