我正在尝试使用php脚本连接到我的服务器上传一些文件......
但它没有连接......
我不知道错误是什么......
我确定ftp已启用,我通过php_info()
检查了它可能是错误......
<?php
error_reporting(E_ALL);
$ftp_server = "server.com"; //address of ftp server (leave out ftp://)
$ftp_user_name = "Username"; // Username
$ftp_user_pass = "Password"; // Password
$conn_id = ftp_connect($ftp_server); // set up basic connection
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
if ($login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass)) {
echo "Connected as ,$ftp_user_name,$ftp_user_pass \n";
} else {
echo "Couldn't connect \n";
}
.....
.....
....
....
ftp_close($conn_id); // close the FTP stream
?>
答案 0 :(得分:5)
也许您必须通过执行以下操作来打开被动模式:
ftp_pasv($conn_id, true);
直接在ftp_login
PS:为什么要进行双重登录?写
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
if ($login_result) {
而不是
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
if ($login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass)) {
答案 1 :(得分:0)
这对我来说不对:
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
if ($login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass)) {
你应该只需要:
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
if ($login_result) {
否则它将尝试登录两次,这可能是问题。
还可以尝试将or die
添加到ftp_conect
,看看它是否可以连接到服务器。
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
答案 2 :(得分:0)
error_get_last()
和/或$ php_errormsg检索的错误信息。有关登录呼叫失败原因的一些诊断信息可能存储在那里。