当我尝试使用
连接到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);