无法使用FTP和PHP

时间:2016-05-08 07:39:54

标签: php ftp

当我通过PHP代码连接时,我无法连接到FTP服务器。最令人尴尬的是,当我尝试使用ftp_connect()方法连接服务器时,我只会得到假。没有报告错误。这是我第一次在PHP中使用FTP。如果以前工作过的人可以帮助我。这是我的代码:

/* Source File Name and Path */    
$remote_file = $_SERVER['DOCUMENT_ROOT'] ."/some-folder/file.txt";

/* New file name and path for this file */
$ftp_host = 'ftp://targetserver.com/some folder/'; 
$ftp_user_name = 'user';
$ftp_user_pass = 'XXXXX';

/* New file name and path for this file */
$local_file = 'ftp://targetserver.com/some-folder/file.txt';

/* Connect using basic FTP */
$connect_it = ftp_connect( $ftp_host, 21);
var_dump($connect_it);

/* Login to FTP */
$login_result = ftp_login( $connect_it, $ftp_user_name, $ftp_user_pass );

/* Download $remote_file and save to $local_file */
if ( ftp_get( $connect_it, $local_file, $remote_file, FTP_BINARY ) ) {
     echo "Successfully written to $local_file\n";
}
else {
    echo "There was a problem\n";
}

/* Close the connection */
ftp_close( $connect_it );

2 个答案:

答案 0 :(得分:2)

实际上,错误意味着您的ftp客户端由于某种原因无法连接到服务器

$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

在你进入php调试之前最好做的是尝试另一个ftp客户端,如https://filezilla-project.org/,看看是否一切正常,如果没有你会节省你的时间,因为问题不是来自你的PHP脚本。

  

更新1

然后试试这个:

$ftp_host = 'targetserver.com';

http://php.net/manual/en/function.ftp-connect.php#refsect1-function.ftp-connect-parameters

The FTP server address. This parameter shouldn't have any trailing slashes and shouldn't be prefixed with ftp://.

至于local_file和remote_file,它们必须是路径而不是URL http://php.net/manual/en/function.ftp-get.php#refsect1-function.ftp-get-examples

答案 1 :(得分:0)

由于ftp_connect函数没有产生错误,我认为已安装扩展。 很可能这可能是端口21被阻止的防火墙问题。 (这是一个非常常见的原因)