当我通过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 );
答案 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被阻止的防火墙问题。 (这是一个非常常见的原因)