连接到FTP服务器给出错误"ftp_login() expects parameter 1 to be resource, boolean given"



当我尝试使用

连接到FTP服务器时

ftp_ssl_connect()

,它给了我这个错误

ftp_login()期望参数1是资源 /home/web/public_html/ftp.php第9行

这是我的源代码

    <?php
// set up basic ssl connection
$conn_id = ftp_ssl_connect($host,'990','20');
// login with username and password
$ftp_user_name='user';
$ftp_user_pass='pass';
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if (!$login_result) {
    // PHP will already have raised an E_WARNING level message in this case
    die("can't login");
}
echo ftp_pwd($conn_id); // /
// close the ssl connection
ftp_close($conn_id);
?>

我看到了许多这样的问题,但没有给我任何适当的答案,请帮助。

我得到了解决方案,实际上我的ftp连接在TLS上隐含了FTP,因此必须使用curl代替ftp_connect和ftp_ssl_connect。我像以下

那样做
$fp = fopen('/', 'r');
$ftp_server = 'ftps://'.$server.'/'.$filename;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ftp_server);
curl_setopt($ch, CURLOPT_USERPWD,$user.':'.$pass);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
$output = curl_exec($ch);
$error_no = curl_errno($ch);
//var_dump(curl_error($ch));
curl_close($ch);

相关内容

最新更新