我目前正在编写一个脚本,用于备份我在服务器上的文件,但是遇到了一个重大问题。大约30分钟前,我能够使用相同的脚本连接,列出我的文件,然后下载它们。但是现在当我尝试连接时,它会连接,就是这样,我不能ftp_nlist
这些文件,因为当我这样做时只返回bool(false)
。我读了一些其他帖子,我应该尝试使用ftp_pasv
将被动模式设置为true,但它没有改变任何内容。我也试过其他用户做同样的事情。我尝试使用filezilla上的凭据并将其连接并允许我下载没有任何问题。任何帮助将不胜感激,我将发布以下代码。
PHP:
连接到FTP
$ftp_server = "Hidden for security";
$ftp_user = "Hidden for security";
$ftp_pass = "Hidden for security";
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
ftp_pasv($conn_id, true);
在FTP上获取文件名
$contents = ftp_nlist($conn_id, ".");
$rm = array(0, 1, 2, 3,);
foreach($rm as $value) {
unset($contents[$value]);
}
$contents = array_values($contents);
在localhost上获取文件名
$dir = scandir("images/");
$rmval = array(0, 1, 2);
foreach ($rmval as $val) {
unset($dir[$val]);
}
$dir = array_values($dir);
尝试登录
if (ftp_login($conn_id, $ftp_user, $ftp_pass)) {
//echo "Connected";
$counter = 0;
var_dump($contents);
/*foreach ($ftp_content as $file) {
ftp_get($conn_id, "images/" . $ftp_content[$counter], $ftp_content[$counter], FTP_BINARY);
$counter++;
}*/
} else {
echo "Couldn't Connect";
}
关闭FTP连接
ftp_close($conn_id);
答案 0 :(得分:0)
问题是我在建立与FTP服务器的连接之前尝试列出我的文件。在$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass)
修复我的问题后添加$conn_id
。现在我能够评估它是真还是假,并根据结果运行不同的代码。