通过php连接ftp时出错

时间:2010-06-14 11:08:19

标签: php ftp

我正在尝试使用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
?>

3 个答案:

答案 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)

  1. 使用常规FTP客户端检查您尝试连接的服务器是否实际接受运行此脚本的任何位置的连接。您的代码可能正确,但FTP服务器不接受来自您服务器的连接,或者有防火墙阻止了这些内容。
  2. 大多数PHP函数都会在内部记录您可以使用error_get_last()和/或$ php_errormsg检索的错误信息。有关登录呼叫失败原因的一些诊断信息可能存储在那里。